AV * gp_av; /* array value */
CV * gp_form; /* format value */
GV * gp_egv; /* effective gv, if *glob */
- U32 gp_line:31; /* line first declared at (for -w) */
- U32 gp_flags:1;
+ PERL_BITFIELD32 gp_line:31; /* line first declared at (for -w) */
+ PERL_BITFIELD32 gp_flags:1;
HEK * gp_file_hek; /* file first declared in (for -w) */
};
#define GvNAME(gv) GvNAME_get(gv)
#define GvNAMELEN(gv) GvNAMELEN_get(gv)
-#define GvASSIGN_GENERATION(gv) (0 + ((XPV*) SvANY(gv))->xpv_len)
-#define GvASSIGN_GENERATION_set(gv,val) \
- STMT_START { assert(SvTYPE(gv) == SVt_PVGV); \
- (((XPV*) SvANY(gv))->xpv_len = (val)); } STMT_END
-
/*
=head1 GV Functions
#define GvENAME_HEK(gv) GvNAME_HEK(GvEGV(gv) ? GvEGV(gv) : gv)
#define GvESTASH(gv) GvSTASH(GvEGV(gv) ? GvEGV(gv) : gv)
+/* GVf_INTRO is one-shot flag which indicates that the next assignment
+ of a reference to the glob is to be localised; it distinguishes
+ 'local *g = $ref' from '*g = $ref'.
+*/
#define GVf_INTRO 0x01
#define GVf_MULTI 0x02
#define GVf_ASSUMECV 0x04
#define GvIMPORTED_CV_on(gv) (GvFLAGS(gv) |= GVf_IMPORTED_CV)
#define GvIMPORTED_CV_off(gv) (GvFLAGS(gv) &= ~GVf_IMPORTED_CV)
-#define GPf_ALIASED_SV 1
-
-#define GvALIASED_SV(gv) (GvGPFLAGS(gv) & GPf_ALIASED_SV)
-#define GvALIASED_SV_on(gv) (GvGPFLAGS(gv) |= GPf_ALIASED_SV)
-#define GvALIASED_SV_off(gv) (GvGPFLAGS(gv) &= ~GPf_ALIASED_SV)
-
#ifndef PERL_CORE
# define GvIN_PAD(gv) 0
# define GvIN_PAD_on(gv) NOOP
#define gv_SVadd(gv) gv_add_by_type((gv), SVt_NULL)
/*
- * Local variables:
- * c-indentation-style: bsd
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- *
* ex: set ts=8 sts=4 sw=4 et:
*/