diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-04 20:31:56 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-04 20:31:56 +0000 |
commit | bac4b2ad63e048350f82163026a348685ed8c235 (patch) | |
tree | bbb62f0fc426831b0e590d73406c99c8e6a19b0a /perl.c | |
parent | a776945caf9d6bac6272042bcf015c29670a54e2 (diff) | |
download | perl-bac4b2ad63e048350f82163026a348685ed8c235.tar.gz |
[win32] fixes for various noises under PERL_DESTRUCT_LEVEL
p4raw-id: //depot/win32/perl@878
Diffstat (limited to 'perl.c')
-rw-r--r-- | perl.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -327,6 +327,7 @@ perl_destruct(register PerlInterpreter *sv_interp) op_free(main_root); main_root = Nullop; } + curcop = &compiling; main_start = Nullop; SvREFCNT_dec(main_cv); main_cv = Nullcv; @@ -2491,7 +2492,7 @@ nuke_stacks(void) curstackinfo = curstackinfo->si_next; while (curstackinfo) { PERL_SI *p = curstackinfo->si_prev; - SvREFCNT_dec(curstackinfo->si_stack); + /* curstackinfo->si_stack got nuked by sv_free_arenas() */ Safefree(curstackinfo->si_cxstack); Safefree(curstackinfo); curstackinfo = p; @@ -2978,7 +2979,7 @@ my_failure_exit(void) static void my_exit_jump(void) { - dTHR; + dSP; register PERL_CONTEXT *cx; I32 gimme; SV **newsp; @@ -2993,6 +2994,7 @@ my_exit_jump(void) e_tmpname = Nullch; } + POPSTACK_TO(mainstack); if (cxstack_ix >= 0) { if (cxstack_ix > 0) dounwind(0); |