summaryrefslogtreecommitdiff
path: root/opcode.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2014-11-08 14:44:46 -0800
committerFather Chrysostomos <sprout@cpan.org>2014-11-08 16:06:44 -0800
commitd86b31224ae14dba78f568f71804fe3016238a2c (patch)
treeaf6b74f8d8911846e38f94864970e00a15bab393 /opcode.h
parent0ec830cc003067236a70fbd947fbeb4cabdf09be (diff)
downloadperl-d86b31224ae14dba78f568f71804fe3016238a2c.tar.gz
values and each are OA_DANGEROUS
OA_DANGEROUS indicates that temporary copies may need to be made in list assignment, to handle things like: ($a, $b) = ($b, $a); In other words, an op type is flagged with OA_DANGEROUS if its return values could occur elsewhere on the stack. values and each can both return scalars that are referenced elsewhere, causing list assignment to behave erratically if temporary copies are not made.
Diffstat (limited to 'opcode.h')
-rw-r--r--opcode.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/opcode.h b/opcode.h
index ee31779130..4f74cd1892 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1873,11 +1873,11 @@ EXTCONST U32 PL_opargs[] = {
0x00013204, /* aelem */
0x00023401, /* aslice */
0x00023401, /* kvaslice */
- 0x00003b00, /* aeach */
+ 0x00003b40, /* aeach */
0x00003b08, /* akeys */
- 0x00003b08, /* avalues */
- 0x00004b00, /* each */
- 0x00004b08, /* values */
+ 0x00003b48, /* avalues */
+ 0x00004b40, /* each */
+ 0x00004b48, /* values */
0x00004b08, /* keys */
0x00001b00, /* delete */
0x00001b04, /* exists */
@@ -2109,9 +2109,9 @@ EXTCONST U32 PL_opargs[] = {
0x00007b04, /* lock */
0x00000300, /* once */
0x00000000, /* custom */
- 0x00001b00, /* reach */
+ 0x00001b40, /* reach */
0x00001b08, /* rkeys */
- 0x00001b08, /* rvalues */
+ 0x00001b48, /* rvalues */
0x00000600, /* coreargs */
0x00000004, /* runcv */
0x00009b8e, /* fc */