SV * gp_sv; /* scalar value */
struct io * gp_io; /* filehandle value */
CV * gp_cv; /* subroutine value */
- U32 gp_cvgen; /* generational validity of cached gv_cv */
+ U32 gp_cvgen; /* generational validity of cached gp_cv */
U32 gp_refcnt; /* how many globs point to this? */
HV * gp_hv; /* hash value */
AV * gp_av; /* array value */
CV * gp_form; /* format value */
GV * gp_egv; /* effective gv, if *glob */
- line_t gp_line; /* line first declared at (for -w) */
+ 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 GvCVGEN(gv) (GvGP(gv)->gp_cvgen)
#define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv)
+#define GvGPFLAGS(gv) (GvGP(gv)->gp_flags)
+
#define GvLINE(gv) (GvGP(gv)->gp_line)
#define GvFILE_HEK(gv) (GvGP(gv)->gp_file_hek)
#define GvFILEx(gv) HEK_KEY(GvFILE_HEK(gv))
#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:
*/