X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=gv.h;h=d9a5b510372dc3892b2062835fc184c5721384bc;hb=7581d28c2d4dcb4f3b408247518e6164f6b89764;hp=e087c9abde9aa889e82cf426f05fb724710637b2;hpb=49c0300d76f341c038d0193748526c5c0e652a90;p=p5sagit%2Fp5-mst-13.2.git diff --git a/gv.h b/gv.h index e087c9a..d9a5b51 100644 --- a/gv.h +++ b/gv.h @@ -18,7 +18,6 @@ struct gp { GV * gp_egv; /* effective gv, if *glob */ CV * gp_cv; /* subroutine value */ U32 gp_cvgen; /* generational validity of cached gv_cv */ - U32 gp_flags; /* XXX unused */ line_t gp_line; /* line first declared at (for -w) */ char * gp_file; /* file first declared in (for -w) */ }; @@ -43,9 +42,9 @@ Return the SV from the GV. #define GvSV(gv) (GvGP(gv)->gp_sv) #ifdef PERL_DONT_CREATE_GVSV -#define GvSVn(gv) (GvGP(gv)->gp_sv ? \ - GvGP(gv)->gp_sv : \ - GvGP(gv_SVadd(gv))->gp_sv) +#define GvSVn(gv) (*(GvGP(gv)->gp_sv ? \ + &(GvGP(gv)->gp_sv) : \ + &(GvGP(gv_SVadd(gv))->gp_sv))) #else #define GvSVn(gv) GvSV(gv) #endif @@ -74,8 +73,6 @@ Return the SV from the GV. #define GvCVGEN(gv) (GvGP(gv)->gp_cvgen) #define GvCVu(gv) (GvGP(gv)->gp_cvgen ? Nullcv : GvGP(gv)->gp_cv) -#define GvGPFLAGS(gv) (GvGP(gv)->gp_flags) - #define GvLINE(gv) (GvGP(gv)->gp_line) #define GvFILE(gv) (GvGP(gv)->gp_file) #define GvFILEGV(gv) (gv_fetchfile(GvFILE(gv))) @@ -131,8 +128,8 @@ Return the SV from the GV. #define GvIN_PAD_off(gv) (GvFLAGS(gv) &= ~GVf_IN_PAD) #define GvUNIQUE(gv) 0 -#define GvUNIQUE_on(gv) 0 -#define GvUNIQUE_off(gv) 0 +#define GvUNIQUE_on(gv) +#define GvUNIQUE_off(gv) #ifdef USE_ITHREADS #define GV_UNIQUE_CHECK @@ -163,3 +160,4 @@ Return the SV from the GV. */ #define gv_fullname3(sv,gv,prefix) gv_fullname4(sv,gv,prefix,TRUE) #define gv_efullname3(sv,gv,prefix) gv_efullname4(sv,gv,prefix,TRUE) +#define gv_fetchmethod(stash, name) gv_fetchmethod_autoload(stash, name, TRUE)