From: Nicholas Clark Date: Thu, 9 Mar 2006 12:01:36 +0000 (+0000) Subject: Unroll 27425 - keeping Larry's order in op.c means that exactly the X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c7fe699de61094debb21a293e2a4d991e501fe00;p=p5sagit%2Fp5-mst-13.2.git Unroll 27425 - keeping Larry's order in op.c means that exactly the same sequence of pad usage is generated with and without MAD. p4raw-id: //depot/perl@27433 --- diff --git a/ext/B/t/f_map.t b/ext/B/t/f_map.t index 243058c..8e614a6 100644 --- a/ext/B/t/f_map.t +++ b/ext/B/t/f_map.t @@ -57,32 +57,32 @@ checkOptree(note => q{}, # 2 <0> pushmark s # 3 <0> pushmark s # 4 <#> gv[*nums] s -# 5 <1> rv2av[t6] lKM/1 +# 5 <1> rv2av[t7] lKM/1 # 6 <@> mapstart lK -# 7 <|> mapwhile(other->8)[t7] lK +# 7 <|> mapwhile(other->8)[t8] lK # 8 <#> gvsv[*_] s # 9 <1> chr[t5] sK/1 # goto 7 # a <0> pushmark s # b <#> gv[*chars] s # c <1> rv2av[t2] lKRM*/1 -# d <2> aassign[t8] KS/COMMON +# d <2> aassign[t9] KS/COMMON # e <1> leavesub[1 ref] K/REFC,1 EOT_EOT # 1 <;> nextstate(main 559 (eval 15):1) v # 2 <0> pushmark s # 3 <0> pushmark s # 4 <$> gv(*nums) s -# 5 <1> rv2av[t2] lKM/1 +# 5 <1> rv2av[t4] lKM/1 # 6 <@> mapstart lK -# 7 <|> mapwhile(other->8)[t4] lK +# 7 <|> mapwhile(other->8)[t5] lK # 8 <$> gvsv(*_) s # 9 <1> chr[t3] sK/1 # goto 7 # a <0> pushmark s # b <$> gv(*chars) s # c <1> rv2av[t1] lKRM*/1 -# d <2> aassign[t5] KS/COMMON +# d <2> aassign[t6] KS/COMMON # e <1> leavesub[1 ref] K/REFC,1 EONT_EONT diff --git a/op.c b/op.c index a2f4bf9..92dc88a 100644 --- a/op.c +++ b/op.c @@ -6365,13 +6365,15 @@ Perl_ck_fun(pTHX_ OP *o) listkids(o); } else if (PL_opargs[type] & OA_DEFGV) { - OP *newop = newUNOP(type, 0, newDEFSVOP()); #ifdef PERL_MAD + OP *newop = newUNOP(type, 0, newDEFSVOP()); op_getmad(o,newop,'O'); + return newop; #else + /* Ordering of these two is important to keep f_map.t passing. */ op_free(o); + return newUNOP(type, 0, newDEFSVOP()); #endif - return newop; } if (oa) {