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

Reply via email to