diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-10-03 19:50:45 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-10-11 00:10:16 -0700 |
commit | 3ad7d3042169c5402b34cdc33048c5488be19f2c (patch) | |
tree | 20e2cef6c30ac9cb4bb365f9c4fe5f6f9c9b4f11 /opcode.h | |
parent | 30bccb25bef4aaad4b320bff7a818e513dd280f5 (diff) | |
download | perl-3ad7d3042169c5402b34cdc33048c5488be19f2c.tar.gz |
Handle state vars correctly in ref assignment
Only \state(@_) was handling this correctly, as pp_lvavref
calls pp_padav.
Diffstat (limited to 'opcode.h')
-rw-r--r-- | opcode.h | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -2745,9 +2745,9 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = { -1, /* clonecv */ 630, /* padrange */ 632, /* refassign */ - 637, /* lvref */ - 642, /* lvrefslice */ - 643, /* lvavref */ + 638, /* lvref */ + 644, /* lvrefslice */ + 645, /* lvavref */ }; @@ -3106,8 +3106,8 @@ EXTCONST U16 PL_op_private_bitdefs[] = { /* runcv */ 0x00bd, /* fc */ 0x0003, /* padrange */ 0x281c, 0x019b, - /* refassign */ 0x281c, 0x037a, 0x250c, 0x13e8, 0x0067, - /* lvref */ 0x281c, 0x037a, 0x250c, 0x13e8, 0x0003, + /* refassign */ 0x281c, 0x037a, 0x3a10, 0x250c, 0x13e8, 0x0067, + /* lvref */ 0x281c, 0x037a, 0x3a10, 0x250c, 0x13e8, 0x0003, /* lvrefslice */ 0x281d, /* lvavref */ 0x281c, 0x3a10, 0x0003, @@ -3497,8 +3497,8 @@ EXTCONST U8 PL_op_private_valid[] = { /* INTROCV */ (0), /* CLONECV */ (0), /* PADRANGE */ (OPpPADRANGE_COUNTMASK|OPpLVAL_INTRO), - /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpLVREF_TYPE|OPpLVAL_INTRO), - /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpLVREF_TYPE|OPpLVAL_INTRO), + /* REFASSIGN */ (OPpARG2_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpPAD_STATE|OPpLVREF_TYPE|OPpLVAL_INTRO), + /* LVREF */ (OPpARG1_MASK|OPpLVREF_ELEM|OPpLVREF_ITER|OPpPAD_STATE|OPpLVREF_TYPE|OPpLVAL_INTRO), /* LVREFSLICE */ (OPpLVAL_INTRO), /* LVAVREF */ (OPpARG1_MASK|OPpPAD_STATE|OPpLVAL_INTRO), |