summaryrefslogtreecommitdiff
path: root/doop.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2016-05-20 17:50:23 -0700
committerFather Chrysostomos <sprout@cpan.org>2016-05-20 22:13:43 -0700
commitcd642408b70f009ca99d93c350a0bfc33707da9a (patch)
tree21e0bbace19c6c86f80cdd24b62e1b89081a4b75 /doop.c
parentbea284c81588d5800ea7246f6a409ab0599e57e5 (diff)
downloadperl-cd642408b70f009ca99d93c350a0bfc33707da9a.tar.gz
Allow assignment to &CORE::keys()
Diffstat (limited to 'doop.c')
-rw-r--r--doop.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/doop.c b/doop.c
index dd9377ae92..ad9172ac1e 100644
--- a/doop.c
+++ b/doop.c
@@ -1243,10 +1243,10 @@ Perl_do_kv(pTHX)
/* op_type is OP_RKEYS/OP_RVALUES if pp_rkeys delegated to here */
const I32 dokeys = dokv || (PL_op->op_type == OP_KEYS)
|| ( PL_op->op_type == OP_AVHVSWITCH
- && PL_op->op_private + OP_EACH == OP_KEYS );
+ && (PL_op->op_private & 3) + OP_EACH == OP_KEYS );
const I32 dovalues = dokv || (PL_op->op_type == OP_VALUES)
|| ( PL_op->op_type == OP_AVHVSWITCH
- && PL_op->op_private + OP_EACH == OP_VALUES );
+ && (PL_op->op_private & 3) + OP_EACH == OP_VALUES );
(void)hv_iterinit(keys); /* always reset iterator regardless */