X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/86d2498c0b3132b9d76f935b317b213effc43990..ec985017e9c79e63d5cb601e51682ea0c26106be:/pad.h diff --git a/pad.h b/pad.h index 9778f74..26e183c 100644 --- a/pad.h +++ b/pad.h @@ -31,8 +31,7 @@ typedef U64TYPE PADOFFSET; struct padlist { SSize_t xpadl_max; /* max index for which array has space */ PAD ** xpadl_alloc; /* pointer to beginning of array of AVs */ - U32 xpadl_id; /* Semi-unique ID, shared between clones */ - U32 xpadl_outid; /* ID of outer pad */ + PADNAMELIST*xpadl_outid; /* Padnamelist of outer pad; used as ID */ }; @@ -229,6 +228,9 @@ The stash in which this "our" variable was declared. =for apidoc m|bool|PadnameOUTER|PADNAME pn Whether this entry belongs to an outer pad. +=for apidoc m|bool|PadnameIsSTATE|PADNAME pn +Whether this is a "state" variable. + =for apidoc m|HV *|PadnameTYPE|PADNAME pn The stash associated with a typed lexical. This returns the %Foo:: hash for C. @@ -294,6 +296,7 @@ Restore the old pad saved into the local variable opad by PAD_SAVE_LOCAL() #define PadnameIsOUR(pn) !!SvPAD_OUR(pn) #define PadnameOURSTASH(pn) SvOURSTASH(pn) #define PadnameOUTER(pn) !!SvFAKE(pn) +#define PadnameIsSTATE(pn) !!SvPAD_STATE(pn) #define PadnameTYPE(pn) (SvPAD_TYPED(pn) ? SvSTASH(pn) : NULL)