In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/0d18dd72a9521e93a8591473088752ce279dcb0d?hp=dd6eeb566bc026ec48f300f3234d1d92ca5e566c>
- Log ----------------------------------------------------------------- commit 0d18dd72a9521e93a8591473088752ce279dcb0d Author: Father Chrysostomos <[email protected]> Date: Sat Nov 8 18:45:04 2014 -0800 op.c:scalarvoid: Remove redundant scalar(o) M op.c commit 2980c1ab20ae6959a7f9a7410b63e22131e2cfbc Author: Father Chrysostomos <[email protected]> Date: Sat Nov 8 18:35:59 2014 -0800 op.c:ck_sassign: Simplify freeing of sassign op Instead of detaching both the rhs and lhs and then freeing the assign- ment and the lhs, just detach the rhs and free the assignment. This results in smaller machine code. M op.c commit f448e81c036e1910ec647c5a2cc2ac3761824721 Author: Father Chrysostomos <[email protected]> Date: Sat Nov 8 18:33:19 2014 -0800 Donât use OP_SIBLING(o) in op.c:ck_sassign When this is called, the op is not part of a larger tree yet, so its sibling is always NULL. M op.c ----------------------------------------------------------------------- Summary of changes: op.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/op.c b/op.c index d0f32e6..6f05353 100644 --- a/op.c +++ b/op.c @@ -1643,7 +1643,8 @@ Perl_scalarvoid(pTHX_ OP *arg) if ((o->op_private & OPpTARGET_MY) && (PL_opargs[o->op_type] & OA_TARGLEX))/* OPp share the meaning */ { - scalar(o); /* As if inside SASSIGN */ + /* newASSIGNOP has already applied scalar context, which we + leave, as if this op is inside SASSIGN. */ continue; } @@ -10150,12 +10151,9 @@ Perl_ck_sassign(pTHX_ OP *o) kid->op_targ = kkid->op_targ; kkid->op_targ = 0; /* Now we do not need PADSV and SASSIGN. - * first replace the PADSV with OP_SIBLING(o), then - * detach kid and OP_SIBLING(o) from o */ - op_sibling_splice(o, kid, 1, OP_SIBLING(o)); - op_sibling_splice(o, NULL, -1, NULL); + * Detach kid and free the rest. */ + op_sibling_splice(o, NULL, 1, NULL); op_free(o); - op_free(kkid); kid->op_private |= OPpTARGET_MY; /* Used for context settings */ return kid; } -- Perl5 Master Repository
