It would be nice to upgrade the right file. Double grrrrr.
[p5sagit/p5-mst-13.2.git] / universal.c
index 1564b59..0c29d93 100644 (file)
@@ -144,8 +144,7 @@ Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
     HV *stash = Nullhv;
     HV *name_stash;
 
-    if (SvGMAGICAL(sv))
-        mg_get(sv) ;
+    SvGETMAGIC(sv);
 
     if (SvROK(sv)) {
         sv = SvRV(sv);
@@ -262,8 +261,7 @@ XS(XS_UNIVERSAL_isa)
 
     sv = ST(0);
 
-    if (SvGMAGICAL(sv))
-       mg_get(sv);
+    SvGETMAGIC(sv);
 
     if (!SvOK(sv) || !(SvROK(sv) || (SvPOK(sv) && SvCUR(sv))
                || (SvGMAGICAL(sv) && SvPOKp(sv) && SvCUR(sv))))
@@ -288,8 +286,7 @@ XS(XS_UNIVERSAL_can)
 
     sv = ST(0);
 
-    if (SvGMAGICAL(sv))
-       mg_get(sv);
+    SvGETMAGIC(sv);
 
     if (!SvOK(sv) || !(SvROK(sv) || (SvPOK(sv) && SvCUR(sv))
                || (SvGMAGICAL(sv) && SvPOKp(sv) && SvCUR(sv))))
@@ -338,7 +335,7 @@ XS(XS_UNIVERSAL_VERSION)
 
     gvp = pkg ? (GV**)hv_fetch(pkg,"VERSION",7,FALSE) : Null(GV**);
 
-    if (gvp && isGV(gv = *gvp) && SvOK(sv = GvSV(gv))) {
+    if (gvp && isGV(gv = *gvp) && (sv = GvSV(gv)) && SvOK(sv)) {
         SV *nsv = sv_newmortal();
         sv_setsv(nsv, sv);
         sv = nsv;
@@ -418,7 +415,7 @@ XS(XS_version_new)
            else {
                /* create empty object */
                vs = sv_newmortal();
-               sv_setpv(vs,"");
+               sv_setpvn(vs,"",0);
            }
        }
        else if ( items == 3 ) {
@@ -819,6 +816,7 @@ XS(XS_Internals_hv_clear_placehold)
 
 XS(XS_Regexp_DESTROY)
 {
+    PERL_UNUSED_ARG(cv);
 }
 
 XS(XS_PerlIO_get_layers)
@@ -906,10 +904,12 @@ XS(XS_PerlIO_get_layers)
                  flgok = flgsvp && *flgsvp && SvIOK(*flgsvp);
 
                  if (details) {
-                      XPUSHs(namok ?
-                            newSVpv(SvPVX_const(*namsvp), 0) : &PL_sv_undef);
-                      XPUSHs(argok ?
-                            newSVpv(SvPVX_const(*argsvp), 0) : &PL_sv_undef);
+                      XPUSHs(namok
+                             ? newSVpvn(SvPVX_const(*namsvp), SvCUR(*namsvp))
+                             : &PL_sv_undef);
+                      XPUSHs(argok
+                             ? newSVpvn(SvPVX_const(*argsvp), SvCUR(*argsvp))
+                             : &PL_sv_undef);
                       if (flgok)
                            XPUSHi(SvIVX(*flgsvp));
                       else
@@ -951,7 +951,8 @@ XS(XS_Internals_hash_seed)
     /* Using dXSARGS would also have dITEM and dSP,
      * which define 2 unused local variables.  */
     dAXMARK;
-    (void)mark;
+    PERL_UNUSED_ARG(cv);
+    PERL_UNUSED_VAR(mark);
     XSRETURN_UV(PERL_HASH_SEED);
 }
 
@@ -960,7 +961,8 @@ XS(XS_Internals_rehash_seed)
     /* Using dXSARGS would also have dITEM and dSP,
      * which define 2 unused local variables.  */
     dAXMARK;
-    (void)mark;
+    PERL_UNUSED_ARG(cv);
+    PERL_UNUSED_VAR(mark);
     XSRETURN_UV(PL_rehash_seed);
 }