diff options
author | David Mitchell <davem@iabyn.com> | 2019-09-23 14:02:49 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2019-09-23 14:11:44 +0100 |
commit | 843fe1cac3dd0142b6beb4102c4616fff1a0ac38 (patch) | |
tree | ff0645cd31e98a5f674278978dd0740fb6474e7b /pp_ctl.c | |
parent | 5b6f744373565ad7bd6bbd484c9e09bc90a0125e (diff) | |
download | perl-843fe1cac3dd0142b6beb4102c4616fff1a0ac38.tar.gz |
si_cxsubix not restored on goto &XS_sub
My recent merge commit v5.31.3-198-gd2cd363728 (temporarily reverted by
v5.31.4-0-g20ef288c53) added a si_cxsubix field to the stackinfo struct
to track the most recent sub context. This field wasn't being restored
correctly with 'goto &XS-sub', and broke Test::Deep.
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -2962,6 +2962,9 @@ PP(pp_goto) * this is a cx_popblock(), less all the stuff we already did * for cx_topblock() earlier */ PL_curcop = cx->blk_oldcop; + /* this is cx_popsub, less all the stuff we already did */ + PL_curstackinfo->si_cxsubix = cx->blk_sub.old_cxsubix; + CX_POP(cx); /* Push a mark for the start of arglist */ |