gv_fetchpv, gv_fetchpvn and gv_fetchsv take a bitmask of flags, rather
[p5sagit/p5-mst-13.2.git] / universal.c
index 57b9481..784fe53 100644 (file)
@@ -38,7 +38,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, HV* name_stash,
     AV* av;
     GV* gv;
     GV** gvp;
-    HV* hv = Nullhv;
+    HV* hv = NULL;
     SV* subgen = Nullsv;
     const char *hvname;
 
@@ -66,7 +66,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, HV* name_stash,
     {
        if (SvIV(subgen) == (IV)PL_sub_generation) {
            SV* sv;
-           SV** svp = (SV**)hv_fetch(hv, name, len, FALSE);
+           SV** const svp = (SV**)hv_fetch(hv, name, len, FALSE);
            if (svp && (sv = *svp) != (SV*)&PL_sv_undef) {
                DEBUG_o( Perl_deb(aTHX_ "Using cached ISA %s for package %s\n",
                                  name, hvname) );
@@ -141,7 +141,7 @@ bool
 Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
 {
     const char *type = Nullch;
-    HV *stash = Nullhv;
+    HV *stash = NULL;
     HV *name_stash;
 
     SvGETMAGIC(sv);
@@ -435,7 +435,7 @@ XS(XS_version_stringify)
          Perl_croak(aTHX_ "Usage: version::stringify(lobj, ...)");
      SP -= items;
      {
-         SV *  lobj = Nullsv;
+         SV *  lobj;
 
          if (sv_derived_from(ST(0), "version")) {
               lobj = SvRV(ST(0));
@@ -457,7 +457,7 @@ XS(XS_version_numify)
          Perl_croak(aTHX_ "Usage: version::numify(lobj, ...)");
      SP -= items;
      {
-         SV *  lobj = Nullsv;
+         SV *  lobj;
 
          if (sv_derived_from(ST(0), "version")) {
               lobj = SvRV(ST(0));
@@ -479,7 +479,7 @@ XS(XS_version_normal)
          Perl_croak(aTHX_ "Usage: version::normal(lobj, ...)");
      SP -= items;
      {
-         SV *  lobj = Nullsv;
+         SV *  lobj;
 
          if (sv_derived_from(ST(0), "version")) {
               lobj = SvRV(ST(0));
@@ -501,7 +501,7 @@ XS(XS_version_vcmp)
          Perl_croak(aTHX_ "Usage: version::vcmp(lobj, ...)");
      SP -= items;
      {
-         SV *  lobj = Nullsv;
+         SV *  lobj;
 
          if (sv_derived_from(ST(0), "version")) {
               lobj = SvRV(ST(0));
@@ -513,7 +513,7 @@ XS(XS_version_vcmp)
               SV       *rs;
               SV       *rvs;
               SV * robj = ST(1);
-              IV        swap = (IV)SvIV(ST(2));
+              const IV  swap = (IV)SvIV(ST(2));
 
               if ( ! sv_derived_from(robj, "version") )
               {
@@ -602,8 +602,8 @@ XS(XS_version_qv)
            if ( SvNOK(ver) ) /* may get too much accuracy */
            {
                char tbuf[64];
-               sprintf(tbuf,"%.9"NVgf, SvNVX(ver));
-               version = savepv(tbuf);
+               const STRLEN len = my_sprintf(tbuf,"%.9"NVgf, SvNVX(ver));
+               version = savepvn(tbuf, len);
            }
            else
            {
@@ -850,8 +850,8 @@ XS(XS_PerlIO_get_layers)
        if (!isGV(sv)) {
             if (SvROK(sv) && isGV(SvRV(sv)))
                  gv = (GV*)SvRV(sv);
-            else
-                 gv = gv_fetchsv(sv, FALSE, SVt_PVIO);
+            else if (SvPOKp(sv))
+                 gv = gv_fetchsv(sv, 0, SVt_PVIO);
        }
 
        if (gv && (io = GvIO(gv))) {