The vestigial PL_pad_reset_pending can actually be bool, rather than
Nicholas Clark [Wed, 26 Nov 2008 21:10:57 +0000 (21:10 +0000)]
I32. This permits some space saving rejigging of the interpreter
struct.

p4raw-id: //depot/perl@34930

intrpvar.h
pad.c

index a940657..956b7de 100644 (file)
@@ -459,12 +459,14 @@ PERLVAR(Imax_intro_pending,       I32)    /* end of vars to introduce */
 PERLVAR(Ipadix,                I32)            /* max used index in current "register" pad */
 
 PERLVAR(Ipadix_floor,  I32)            /* how low may inner block reset padix */
-PERLVAR(Ipad_reset_pending,    I32)    /* reset pad on next attempted alloc */
 
 PERLVAR(Ihints,                U32)            /* pragma-tic compile-time flags */
 
 PERLVAR(Idebug,                VOL U32)        /* flags given to -D switch */
 
+/* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen"  */
+PERLVARI(Ibreakable_sub_gen, U32, 0)
+
 PERLVARI(Iamagic_generation,   long,   0)
 
 #ifdef USE_LOCALE_COLLATE
@@ -524,7 +526,7 @@ PERLVAR(Ilast_swash_klen,   U8)     /* Only needs to store 0-10  */
 PERLVARI(Icryptseen,   bool,   FALSE)  /* has fast crypt() been initialized? */
 #endif
 
-/* Space for a U8 */
+PERLVAR(Ipad_reset_pending,    bool)   /* reset pad on next attempted alloc */
 
 PERLVARI(Iglob_index,  int,    0)
 
@@ -679,9 +681,6 @@ PERLVARI(Idestroyhook, destroyable_proc_t, MEMBER_TO_FPTR(Perl_sv_destroyable))
 PERLVARI(Isv_serial, U32, 0) /* SV serial number, used in sv.c */
 #endif
 
-/* Perl_Ibreakable_sub_generation_ptr was too long for VMS, hence "gen"  */
-PERLVARI(Ibreakable_sub_gen, U32, 0)
-
 /* If you are adding a U8 or U16, check to see if there are 'Space' comments
  * above on where there are gaps which currently will be structure padding.  */
 
diff --git a/pad.c b/pad.c
index bf85118..715d361 100644 (file)
--- a/pad.c
+++ b/pad.c
@@ -180,7 +180,7 @@ Perl_pad_new(pTHX_ int flags)
            SAVEI32(PL_max_intro_pending);
            SAVEBOOL(PL_cv_has_eval);
            if (flags & padnew_SAVESUB) {
-               SAVEI32(PL_pad_reset_pending);
+               SAVEBOOL(PL_pad_reset_pending);
            }
        }
     }