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
