diff options
Diffstat (limited to 'systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h')
-rw-r--r-- | systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h index 9b465a069d..68865b9991 100644 --- a/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h +++ b/systems/texlive/tlnet/tlpkg/tlperl/lib/CORE/gv.h @@ -28,7 +28,7 @@ struct gp { #if defined (DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS) && !defined(__INTEL_COMPILER) # define GvGP(gv) \ - (0+(*({GV *const _gvgp = (GV *) (gv); \ + ((GP *)(*({GV *const _gvgp = (GV *) (gv); \ assert(SvTYPE(_gvgp) == SVt_PVGV || SvTYPE(_gvgp) == SVt_PVLV); \ assert(isGV_with_GP(_gvgp)); \ &((_gvgp)->sv_u.svu_gp);}))) @@ -134,7 +134,7 @@ Return the CV from the GV. GvGP(gv)->gp_hv : \ GvGP(gv_HVadd(gv))->gp_hv) -#define GvCV(gv) (0+GvGP(gv)->gp_cv) +#define GvCV(gv) ((CV*)GvGP(gv)->gp_cv) #define GvCV_set(gv,cv) (GvGP(gv)->gp_cv = (cv)) #define GvCVGEN(gv) (GvGP(gv)->gp_cvgen) #define GvCVu(gv) (GvGP(gv)->gp_cvgen ? NULL : GvGP(gv)->gp_cv) @@ -162,7 +162,7 @@ Return the CV from the GV. #define GVf_INTRO 0x01 #define GVf_MULTI 0x02 #define GVf_ASSUMECV 0x04 -/* UNUSED 0x08 */ +#define GVf_RESERVED 0x08 /* unused */ #define GVf_IMPORTED 0xF0 #define GVf_IMPORTED_SV 0x10 #define GVf_IMPORTED_AV 0x20 @@ -261,12 +261,15 @@ Return the CV from the GV. found (with the exception GV_ADDMG, which *might* cause the symbol to be added) */ +/* gv_fetchfile_flags() */ +#define GVF_NOADD 0x01 /* don't add the glob if it doesn't exist */ + #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) #define gv_fetchsv_nomg(n,f,t) gv_fetchsv(n,(f)|GV_NO_SVGMAGIC,t) #define gv_init(gv,stash,name,len,multi) \ - gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*!!(multi)) + gv_init_pvn(gv,stash,name,len,GV_ADDMULTI*cBOOL(multi)) #define gv_fetchmeth(stash,name,len,level) gv_fetchmeth_pvn(stash, name, len, level, 0) #define gv_fetchmeth_autoload(stash,name,len,level) gv_fetchmeth_pvn_autoload(stash, name, len, level, 0) #define gv_fetchmethod_flags(stash,name,flags) gv_fetchmethod_pv_flags(stash, name, flags) @@ -278,7 +281,7 @@ Equivalent to C<L</gv_autoload_pvn>>. =cut */ #define gv_autoload4(stash, name, len, autoload) \ - gv_autoload_pvn(stash, name, len, !!(autoload)) + gv_autoload_pvn(stash, name, len, cBOOL(autoload)) #define newGVgen(pack) newGVgen_flags(pack, 0) #define gv_method_changed(gv) \ ( \ @@ -288,6 +291,17 @@ Equivalent to C<L</gv_autoload_pvn>>. : mro_method_changed_in(GvSTASH(gv)) \ ) +/* +=for apidoc gv_AVadd +=for apidoc_item gv_HVadd +=for apidoc_item gv_IOadd +=for apidoc_item gv_SVadd + +Make sure there is a slot of the given type (AV, HV, IO, SV) in the GV C<gv>. + +=cut +*/ + #define gv_AVadd(gv) gv_add_by_type((gv), SVt_PVAV) #define gv_HVadd(gv) gv_add_by_type((gv), SVt_PVHV) #define gv_IOadd(gv) gv_add_by_type((gv), SVt_PVIO) |