diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 14:44:46 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-11-08 16:06:44 -0800 |
commit | d86b31224ae14dba78f568f71804fe3016238a2c (patch) | |
tree | af6b74f8d8911846e38f94864970e00a15bab393 /opcode.h | |
parent | 0ec830cc003067236a70fbd947fbeb4cabdf09be (diff) | |
download | perl-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.h | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -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 */ |