blead 25801: Symbian batch of today
[p5sagit/p5-mst-13.2.git] / universal.c
index 507ab14..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;