diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-10-14 17:47:35 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-10-14 17:47:35 +0000 |
commit | 0cdb207790df717da1f7d2136f6b268baceb3494 (patch) | |
tree | 7a3741814379bd5b2e20aea2f320153c646f75e1 /pp_ctl.c | |
parent | 3e5d0dec1210692f67ee4d7c2687147c8f62f366 (diff) | |
download | perl-0cdb207790df717da1f7d2136f6b268baceb3494.tar.gz |
fix POPSTACK panics that ensued from bad interaction between
runlevels and stack of stacks (change#3988 done right);
basically, we pop the runlevel if the stacklevel is not the
same one we started the runlevel with
p4raw-link: @3988 on //depot/perl: a7c6d24429ab2b6db54575a3bdc62c7ed9f881cf
p4raw-id: //depot/perl@4376
Diffstat (limited to 'pp_ctl.c')
-rw-r--r-- | pp_ctl.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -2436,6 +2436,7 @@ S_docatch(pTHX_ OP *o) dTHR; int ret; OP *oldop = PL_op; + volatile PERL_SI *cursi = PL_curstackinfo; dJMPENV; #ifdef DEBUGGING @@ -2448,7 +2449,7 @@ S_docatch(pTHX_ OP *o) case 0: break; case 3: - if (PL_restartop) { + if (PL_restartop && cursi == PL_curstackinfo) { PL_op = PL_restartop; PL_restartop = 0; goto redo_body; |