diff options
Diffstat (limited to 'miniperlmain.c')
-rw-r--r-- | miniperlmain.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/miniperlmain.c b/miniperlmain.c index a1ef2f1574..f22dcbba8d 100644 --- a/miniperlmain.c +++ b/miniperlmain.c @@ -70,6 +70,8 @@ main(int argc, char **argv, char **env) #ifdef PERL_GLOBAL_STRUCT struct perl_vars *my_vars = init_global_struct(); # ifdef PERL_GLOBAL_STRUCT_PRIVATE + int veto; + my_plvarsp = my_vars; # endif #endif /* PERL_GLOBAL_STRUCT */ @@ -146,9 +148,13 @@ main(int argc, char **argv, char **env) PERL_SYS_TERM(); #ifdef PERL_GLOBAL_STRUCT +# ifdef PERL_GLOBAL_STRUCT_PRIVATE + veto = my_plvarsp->Gveto_cleanup; +# endif free_global_struct(my_vars); # ifdef PERL_GLOBAL_STRUCT_PRIVATE - my_plvarsp = NULL; + if (!veto) + my_plvarsp = NULL; /* Remember, functions registered with atexit() can run after this point, and may access "global" variables, and hence end up calling Perl_GetVarsPrivate() */ |