summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2013-06-26 18:24:19 +0200
committerNicholas Clark <nick@ccl4.org>2013-07-12 12:51:39 +0200
commit79403e7734f5035577af0aa30b949ca081ec503c (patch)
treefd0b587346a937f98ee4be175a0d81c08bd0a280
parent5c64bffd0d9c35e88b9ac48fc997977163abcc50 (diff)
downloadperl-79403e7734f5035577af0aa30b949ca081ec503c.tar.gz
For -DPERL_GLOBAL_STRUCT, eliminate local variable plvarsp in main().
-rw-r--r--ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm7
-rw-r--r--lib/ExtUtils/t/Embed.t9
-rw-r--r--miniperlmain.c7
3 files changed, 11 insertions, 12 deletions
diff --git a/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm b/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
index b9e9086fcf..730c565d12 100644
--- a/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
+++ b/ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm
@@ -95,12 +95,11 @@ int
main(int argc, char **argv, char **env)
#endif
{
- dVAR;
int exitstatus, i;
#ifdef PERL_GLOBAL_STRUCT
- struct perl_vars *plvarsp = init_global_struct();
+ struct perl_vars *my_vars = init_global_struct();
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
- my_vars = my_plvarsp = plvarsp;
+ my_plvarsp = my_vars;
# endif
#endif /* PERL_GLOBAL_STRUCT */
#ifndef NO_ENV_ARRAY_IN_MAIN
@@ -176,7 +175,7 @@ main(int argc, char **argv, char **env)
PERL_SYS_TERM();
#ifdef PERL_GLOBAL_STRUCT
- free_global_struct(plvarsp);
+ free_global_struct(my_vars);
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
my_plvarsp = NULL;
/* Remember, functions registered with atexit() can run after this point,
diff --git a/lib/ExtUtils/t/Embed.t b/lib/ExtUtils/t/Embed.t
index 9e52302bf4..fb9db91904 100644
--- a/lib/ExtUtils/t/Embed.t
+++ b/lib/ExtUtils/t/Embed.t
@@ -169,10 +169,9 @@ int main(int argc, char **argv, char **env) {
#endif
PerlInterpreter *my_perl;
#ifdef PERL_GLOBAL_STRUCT
- dVAR;
- struct perl_vars *plvarsp = init_global_struct();
+ struct perl_vars *my_vars = init_global_struct();
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
- my_vars = my_plvarsp = plvarsp;
+ my_plvarsp = my_vars;
# endif
#endif /* PERL_GLOBAL_STRUCT */
@@ -209,11 +208,13 @@ int main(int argc, char **argv, char **env) {
PERL_SYS_TERM();
#ifdef PERL_GLOBAL_STRUCT
- free_global_struct(plvarsp);
+ free_global_struct(my_vars);
+# ifdef PERL_GLOBAL_STRUCT_PRIVATE
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() */
+#endif
#endif /* PERL_GLOBAL_STRUCT */
return 0;
diff --git a/miniperlmain.c b/miniperlmain.c
index c57c883f8f..a1ef2f1574 100644
--- a/miniperlmain.c
+++ b/miniperlmain.c
@@ -66,12 +66,11 @@ int
main(int argc, char **argv, char **env)
#endif
{
- dVAR;
int exitstatus, i;
#ifdef PERL_GLOBAL_STRUCT
- struct perl_vars *plvarsp = init_global_struct();
+ struct perl_vars *my_vars = init_global_struct();
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
- my_vars = my_plvarsp = plvarsp;
+ my_plvarsp = my_vars;
# endif
#endif /* PERL_GLOBAL_STRUCT */
#ifndef NO_ENV_ARRAY_IN_MAIN
@@ -147,7 +146,7 @@ main(int argc, char **argv, char **env)
PERL_SYS_TERM();
#ifdef PERL_GLOBAL_STRUCT
- free_global_struct(plvarsp);
+ free_global_struct(my_vars);
# ifdef PERL_GLOBAL_STRUCT_PRIVATE
my_plvarsp = NULL;
/* Remember, functions registered with atexit() can run after this point,