In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/81b96c32839f3fa3ae70bddf441b4e6827eb93c8?hp=607ee43568c28c8da9fb4b19d16807dd0214af40>

- Log -----------------------------------------------------------------
commit 81b96c32839f3fa3ae70bddf441b4e6827eb93c8
Author: David Mitchell <[email protected]>
Date:   Wed Sep 28 11:27:38 2016 +0100

    OP_MULTIDEREF: ignore customised delete/exists
    
    We already skip optmising to a multideref if an aelem op has a customised
    PL_check[] routine; extend this skip to OP_EXISTS and OP_DELETE too.
    
    See http://nntp.perl.org/group/perl.perl5.porters/227545
-----------------------------------------------------------------------

Summary of changes:
 op.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/op.c b/op.c
index c2f5406..0fbee48 100644
--- a/op.c
+++ b/op.c
@@ -12992,6 +12992,13 @@ S_maybe_multideref(pTHX_ OP *start, OP *orig_o, UV 
orig_action, U8 hints)
             if (  (o->op_type == OP_AELEM || o->op_type == OP_HELEM)
                && PL_check[o->op_type] != Perl_ck_null)
                 return;
+            /* similarly for customised exists and delete */
+            if (  (o->op_type == OP_EXISTS)
+               && PL_check[o->op_type] != Perl_ck_exists)
+                return;
+            if (  (o->op_type == OP_DELETE)
+               && PL_check[o->op_type] != Perl_ck_delete)
+                return;
 
             if (   o->op_type != OP_AELEM
                 || (o->op_private &

--
Perl5 Master Repository

Reply via email to