X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/9190f8abaa745e951f7a073b3955190cd1bc9475..c5a9828441a753bc549b18fb011db0bd25fe54ee:/vxs.inc diff --git a/vxs.inc b/vxs.inc index dcf9537..cea9857 100644 --- a/vxs.inc +++ b/vxs.inc @@ -5,14 +5,19 @@ # define VXS_CLASS "version" # define VXSp(name) XS_##name /* VXSXSDP = XSUB Details Proto */ -# define VXSXSDP(x) x +# define VXSXSDP(x) x, 0 #else # define VXS_CLASS "version::vxs" # define VXSp(name) VXS_##name /* proto member is unused in version, it is used in CORE by non version xsubs */ # define VXSXSDP(x) #endif -#define VXS(name) XS(VXSp(name)) + +#ifndef XS_INTERNAL +# define XS_INTERNAL(name) static XSPROTO(name) +#endif + +#define VXS(name) XS_INTERNAL(VXSp(name)); XS_INTERNAL(VXSp(name)) /* uses PUSHs, so SP must be at start, PUSHs sv on Perl stack, then returns from xsub; this is a little more machine code/tailcall friendly than mPUSHs(foo); @@ -86,7 +91,6 @@ typedef char HVNAME; VXS(universal_version) { - dVAR; dXSARGS; HV *pkg; GV **gvp; @@ -134,7 +138,7 @@ VXS(universal_version) name, SvPVx_nolen_const(req)); #else Perl_croak(aTHX_ - "%"HEKf" does not define $%"HEKf + "%" HEKf " does not define $%" HEKf "::VERSION--version check failed", HEKfARG(name), HEKfARG(name)); #endif @@ -142,7 +146,8 @@ VXS(universal_version) else { #if PERL_VERSION >= 8 Perl_croak(aTHX_ - "%"SVf" defines neither package nor VERSION--version check failed", + "%" SVf " defines neither package nor VERSION--" + "version check failed", (void*)(ST(0)) ); #else Perl_croak(aTHX_ "%s does not define $%s::VERSION--version check failed", @@ -166,8 +171,8 @@ VXS(universal_version) req = VSTRINGIFY(req); sv = VSTRINGIFY(sv); } - Perl_croak(aTHX_ "%"HEKf" version %"SVf" required--" - "this is only version %"SVf"", HEKfARG(HvNAME_HEK(pkg)), + Perl_croak(aTHX_ "%" HEKf " version %" SVf " required--" + "this is only version %" SVf, HEKfARG(HvNAME_HEK(pkg)), SVfARG(sv_2mortal(req)), SVfARG(sv_2mortal(sv))); } @@ -185,7 +190,6 @@ VXS(universal_version) VXS(version_new) { - dVAR; dXSARGS; SV *vs; SV *rv; @@ -215,7 +219,7 @@ VXS(version_new) SvGETMAGIC(vs); if(SvOK(vs)) break; - /* drop through */ + /* fall through */ case 1: /* no param or explicit undef */ /* create empty object */ @@ -225,7 +229,6 @@ VXS(version_new) default: case 0: Perl_croak_nocontext("Usage: version::new(class, version)"); - break; } svarg0 = ST(0); @@ -267,7 +270,6 @@ VXS(version_new) VXS(version_stringify) { - dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "lobj, ..."); @@ -282,7 +284,6 @@ VXS(version_stringify) VXS(version_numify) { - dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "lobj, ..."); @@ -296,7 +297,6 @@ VXS(version_numify) VXS(version_normal) { - dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "ver"); @@ -311,7 +311,6 @@ VXS(version_normal) VXS(version_vcmp) { - dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "lobj, ..."); @@ -347,7 +346,6 @@ VXS(version_vcmp) VXS(version_boolean) { - dVAR; dXSARGS; SV *lobj; if (items < 1) @@ -368,7 +366,6 @@ VXS(version_boolean) VXS(version_noop) { - dVAR; dXSARGS; if (items < 1) croak_xs_usage(cv, "lobj, ..."); @@ -383,7 +380,6 @@ static void S_version_check_key(pTHX_ CV * cv, const char * key, int keylen) { - dVAR; dXSARGS; if (items != 1) croak_xs_usage(cv, "lobj"); @@ -408,7 +404,6 @@ VXS(version_is_alpha) VXS(version_qv) { - dVAR; dXSARGS; PERL_UNUSED_ARG(cv); SP -= items;