Change 31206 by [EMAIL PROTECTED] on 2007/05/12 22:42:09 Subject: [PATCH] Disable slurping assigned of split when PL_madskills From: Gerard Goossen <[EMAIL PROTECTED]> Date: Tue May 8 15:15:09 2007 +0200 Message-Id: <[EMAIL PROTECTED]>
Affected files ... ... //depot/perl/mad/Nomad.pm#4 edit ... //depot/perl/op.c#940 edit ... //depot/perl/op.h#180 edit Differences ... ==== //depot/perl/mad/Nomad.pm#4 (xtext) ==== Index: perl/mad/Nomad.pm --- perl/mad/Nomad.pm#3~31204~ 2007-05-12 15:40:05.000000000 -0700 +++ perl/mad/Nomad.pm 2007-05-12 15:42:09.000000000 -0700 @@ -2199,16 +2199,6 @@ package PLXML::op_unpack; package PLXML::op_pack; package PLXML::op_split; - -sub ast { - my $self = shift; - my $results = $self->SUPER::ast(@_); - if (my @dest = $self->madness('R')) { - return PLXML::op_aassign->newtype->new(Kids => [EMAIL PROTECTED], $self->madness('ox'), $results]); - } - return $results; -} - package PLXML::op_join; package PLXML::op_list; ==== //depot/perl/op.c#940 (text) ==== Index: perl/op.c --- perl/op.c#939~31205~ 2007-05-12 15:41:17.000000000 -0700 +++ perl/op.c 2007-05-12 15:42:09.000000000 -0700 @@ -4073,7 +4073,7 @@ o->op_private |= OPpASSIGN_COMMON; } - if (right && right->op_type == OP_SPLIT) { + if (right && right->op_type == OP_SPLIT && !PL_madskills) { OP* tmpop = ((LISTOP*)right)->op_first; if (tmpop && (tmpop->op_type == OP_PUSHRE)) { PMOP * const pm = (PMOP*)tmpop; @@ -4103,11 +4103,7 @@ tmpop = ((UNOP*)tmpop)->op_first; /* to pushmark */ tmpop->op_sibling = NULL; /* don't free split */ right->op_next = tmpop->op_next; /* fix starting loc */ -#ifdef PERL_MAD - op_getmad(o,right,'R'); /* blow off assign */ -#else op_free(o); /* blow off assign */ -#endif right->op_flags &= ~OPf_WANT; /* "I don't know and I don't care." */ return right; ==== //depot/perl/op.h#180 (text) ==== Index: perl/op.h --- perl/op.h#179~31204~ 2007-05-12 15:40:05.000000000 -0700 +++ perl/op.h 2007-05-12 15:42:09.000000000 -0700 @@ -712,7 +712,6 @@ * Q optimized qw// * r expression producing R * R tr/E/R/ s/E/R/ - * R assign slurped by split * s sub signature * S use import stub (no import) * S retired sort block End of Patch.