This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Synchronise Dumpvalue to CPAN
[perl5.git] / pad.h
diff --git a/pad.h b/pad.h
index 7d05edc..7e130d8 100644 (file)
--- a/pad.h
+++ b/pad.h
@@ -31,6 +31,12 @@ typedef U64TYPE PADOFFSET;
 #endif
 #define NOT_IN_PAD ((PADOFFSET) -1)
 
+/* a value that PL_cop_seqmax is guaranteed never to be,
+ * flagging that a lexical is being introduced, or has not yet left scope
+ */
+#define PERL_PADSEQ_INTRO  U32_MAX
+
+
 /* B.xs needs these for the benefit of B::Deparse */
 /* Low range end is exclusive (valid from the cop seq after this one) */
 /* High range end is inclusive (valid up to this cop seq) */
@@ -116,9 +122,9 @@ typedef enum {
 
 /* flags for pad_add_name. SVf_UTF8 will also be valid in the future.  */
 
-#  define pad_add_OUR  0x01    /* our declaration. */
-#  define pad_add_STATE        0x02    /* state declaration. */
-#  define pad_add_NO_DUP_CHECK 0x04    /* skip warning on dups. */
+#  define padadd_OUR           0x01    /* our declaration. */
+#  define padadd_STATE         0x02    /* state declaration. */
+#  define padadd_NO_DUP_CHECK  0x04    /* skip warning on dups. */
 
 #endif
 
@@ -249,7 +255,8 @@ Restore the old pad saved into the local variable opad by PAD_SAVE_LOCAL()
              PTR2UV(PL_comppad), PTR2UV(PL_curpad)));
 
 #define PAD_RESTORE_LOCAL(opad) \
-       PL_comppad = opad && SvIS_FREED(opad) ? NULL : opad;    \
+        assert(!opad || !SvIS_FREED(opad));                                    \
+       PL_comppad = opad;                                              \
        PL_curpad =  PL_comppad ? AvARRAY(PL_comppad) : NULL;   \
        DEBUG_Xv(PerlIO_printf(Perl_debug_log,                  \
              "Pad 0x%"UVxf"[0x%"UVxf"] restore_local\n",       \
@@ -302,8 +309,7 @@ ling pad (lvalue) to C<gen>.  Note that C<SvUV_set> is hijacked for this purpose
 
 #define PAD_COMPNAME_SV(po) (*av_fetch(PL_comppad_name, (po), FALSE))
 #define PAD_COMPNAME_FLAGS(po) SvFLAGS(PAD_COMPNAME_SV(po))
-#define PAD_COMPNAME_FLAGS_isOUR(po) \
-  ((PAD_COMPNAME_FLAGS(po) & (SVpad_NAME|SVpad_OUR)) == (SVpad_NAME|SVpad_OUR))
+#define PAD_COMPNAME_FLAGS_isOUR(po) SvPAD_OUR(PAD_COMPNAME_SV(po))
 #define PAD_COMPNAME_PV(po) SvPV_nolen(PAD_COMPNAME_SV(po))
 
 #define PAD_COMPNAME_TYPE(po) pad_compname_type(po)