On Sunday 22 April 2007 17:38, Matt Diephouse wrote:
> The attached patch completely reworks Parrot_process_args. The changes
> are extensive and I think they make the code much clearer. Rather than
> just check it in, I thought I'd try to get feedback here to make sure
> that it is clearer to everyone else and not just to myself.
It's a lot clearer.
> This patch also fixes a few bugs:
> #40490: Flat/Slurpy Named Parameter Passing Errors
Yay!
> A couple todo'd error condition tests
>
> I'm sure there is more that can be done to clean things up, but this
> is at least a start. I've already spent 15+ hours on this patch, so
> I'm ready to check things in and leave further improvements for
> another time.
I only noticed one thing (besides large swaths of removed code, which is
always nice). This code occurs multiple times:
+ /* if the :flat arg is empty, just go to the next arg */
+ if (!st->src.slurp_n) {
+ st->src.mode &= ~CALL_STATE_FLATTEN;
+ st->src.i++;
+ }
It's three lines; is it worth extracting somehow?
-- c