summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-04-04 20:31:56 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-04-04 20:31:56 +0000
commitbac4b2ad63e048350f82163026a348685ed8c235 (patch)
treebbb62f0fc426831b0e590d73406c99c8e6a19b0a /perl.c
parenta776945caf9d6bac6272042bcf015c29670a54e2 (diff)
downloadperl-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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/perl.c b/perl.c
index fdbdad1b19..a4e82333e9 100644
--- a/perl.c
+++ b/perl.c
@@ -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);