X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xsutils.c;h=86620083af78be8f6479afbafc0589827bdeb338;hb=48614a46f2d1bab9f109995e713e48774d849328;hp=4f7324f90be1b6f2ce610c7d3376f9ab4a80ef70;hpb=27da23d53ccce622bc51822f59df8def79b4df95;p=p5sagit%2Fp5-mst-13.2.git diff --git a/xsutils.c b/xsutils.c index 4f7324f..8662008 100644 --- a/xsutils.c +++ b/xsutils.c @@ -57,14 +57,14 @@ static int modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs) { SV *attr; - char *name; - STRLEN len; - bool negated; int nret; for (nret = 0 ; numattrs && (attr = *attrlist++); numattrs--) { - name = SvPV(attr, len); - if ((negated = (*name == '-'))) { + STRLEN len; + const char *name = SvPV_const(attr, len); + const bool negated = (*name == '-'); + + if (negated) { name++; len--; } @@ -132,10 +132,11 @@ modify_SV_attributes(pTHX_ SV *sv, SV **retlist, SV **attrlist, int numattrs) case 'e': if (memEQ(name, "uniqu", 5)) { if (SvTYPE(sv) == SVt_PVGV) { - if (negated) + if (negated) { GvUNIQUE_off(sv); - else + } else { GvUNIQUE_on(sv); + } } /* Hope this came from toke.c if not a GV. */ continue; @@ -160,7 +161,6 @@ XS(XS_attributes_bootstrap) { dXSARGS; const char file[] = __FILE__; - (void)cv; if( items > 1 ) Perl_croak(aTHX_ "Usage: attributes::bootstrap $module"); @@ -178,7 +178,6 @@ XS(XS_attributes__modify_attrs) { dXSARGS; SV *rv, *sv; - (void)cv; if (items < 1) { usage: @@ -201,7 +200,6 @@ XS(XS_attributes__fetch_attrs) dXSARGS; SV *rv, *sv; cv_flags_t cvflags; - (void)cv; if (items != 1) { usage: @@ -247,7 +245,6 @@ XS(XS_attributes__guess_stash) dXSARGS; SV *rv, *sv; dXSTARG; - (void)cv; if (items != 1) { usage: @@ -262,7 +259,7 @@ usage: sv = SvRV(rv); if (SvOBJECT(sv)) - sv_setpv(TARG, HvNAME(SvSTASH(sv))); + sv_setpvn(TARG, HvNAME_get(SvSTASH(sv)), HvNAMELEN_get(SvSTASH(sv))); #if 0 /* this was probably a bad idea */ else if (SvPADMY(sv)) sv_setsv(TARG, &PL_sv_no); /* unblessed lexical */ @@ -288,7 +285,7 @@ usage: break; } if (stash) - sv_setpv(TARG, HvNAME(stash)); + sv_setpvn(TARG, HvNAME_get(stash), HvNAMELEN_get(stash)); } SvSETMAGIC(TARG); @@ -300,7 +297,6 @@ XS(XS_attributes_reftype) dXSARGS; SV *rv, *sv; dXSTARG; - (void)cv; if (items != 1) { usage: @@ -310,8 +306,7 @@ usage: rv = ST(0); ST(0) = TARG; - if (SvGMAGICAL(rv)) - mg_get(rv); + SvGETMAGIC(rv); if (!(SvOK(rv) && SvROK(rv))) goto usage; sv = SvRV(rv); @@ -324,7 +319,6 @@ usage: XS(XS_attributes__warn_reserved) { dXSARGS; - (void)cv; if (items != 0) { Perl_croak(aTHX_ @@ -337,3 +331,12 @@ XS(XS_attributes__warn_reserved) XSRETURN(1); } +/* + * Local variables: + * c-indentation-style: bsd + * c-basic-offset: 4 + * indent-tabs-mode: t + * End: + * + * ex: set ts=8 sts=4 sw=4 noet: + */