This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove PL_maxo
authorFather Chrysostomos <sprout@cpan.org>
Sun, 14 Aug 2016 08:11:07 +0000 (01:11 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 14 Aug 2016 18:29:10 +0000 (11:29 -0700)
We have an interpreter variable using memory, PL_maxo, which is
defined to be the same as MAXO, a #defined constant.  As far as I can
tell, it is never used in lvalue context, in core or on CPAN, except
for the initialisation in intrpvar.h.

It can simply be removed and replaced with a macro defined as equiva-
lent to MAXO.

It was added in this commit:

commit 84ea024ac9cdf20f21223e686dddea82d5eceb4f
Author: Perl 5 Porters <perl5-porters.nicoh.com>
Date:   Tue Jan 2 23:21:55 1996 +0000

    perl 5.002beta1h patch: perl.h

    5.002beta1 attempted some memory optimizations, but unfortunately
    they can result in a memory leak problem.  This can be
    avoided by #define STRANGE_MALLOC.  I do that here until
    consensus is reached on a better strategy for handling the
    memory optimizations.

    Include maxo for the maximum number of operations (needed
    for the Safe extension).

But apparently it is not needed for the Safe extension (tests pass
without it).

embedvar.h
intrpvar.h
perl.h
sv.c

index cf4912c..18f2c99 100644 (file)
 #define PL_markstack_max       (vTHX->Imarkstack_max)
 #define PL_markstack_ptr       (vTHX->Imarkstack_ptr)
 #define PL_max_intro_pending   (vTHX->Imax_intro_pending)
-#define PL_maxo                        (vTHX->Imaxo)
 #define PL_maxsysfd            (vTHX->Imaxsysfd)
 #define PL_memory_debug_header (vTHX->Imemory_debug_header)
 #define PL_mess_sv             (vTHX->Imess_sv)
index 756b1dc..dd9159e 100644 (file)
@@ -543,7 +543,7 @@ PERLVARA(I, body_roots,     PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
 
 PERLVAR(I, debug,      VOL U32)        /* flags given to -D switch */
 
-PERLVARI(I, maxo,      int,    MAXO)   /* maximum number of ops */
+                                       /* 32-BIT HOLE !!! */
 
 PERLVARI(I, runops,    runops_proc_t, RUNOPS_DEFAULT)
 
diff --git a/perl.h b/perl.h
index 8a2e1f1..43f1a53 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -5288,6 +5288,7 @@ EXTCONST char *const PL_phase_names[];
 #endif /* !PERL_CORE */
 
 #define PL_hints PL_compiling.cop_hints
+#define PL_maxo  MAXO
 
 END_EXTERN_C
 
diff --git a/sv.c b/sv.c
index 467af34..b345052 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -14780,8 +14780,6 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     PL_forkprocess     = proto_perl->Iforkprocess;
 
     /* internal state */
-    PL_maxo            = proto_perl->Imaxo;
-
     PL_main_start      = proto_perl->Imain_start;
     PL_eval_root       = proto_perl->Ieval_root;
     PL_eval_start      = proto_perl->Ieval_start;