Upgrade to Math-Complex-1.42
[p5sagit/p5-mst-13.2.git] / universal.c
index 2b39583..a6b3f6e 100644 (file)
@@ -158,10 +158,10 @@ Perl_sv_does(pTHX_ SV *sv, const char *name)
 
     PUSHMARK(SP);
     XPUSHs(sv);
-    XPUSHs(sv_2mortal(newSVpv(name, 0)));
+    mXPUSHs(newSVpv(name, 0));
     PUTBACK;
 
-    methodname = sv_2mortal(newSVpv("isa", 0));
+    methodname = newSVpvs_flags("isa", SVs_TEMP);
     /* ugly hack: use the SvSCREAM flag so S_method_common
      * can figure out we're calling DOES() and not isa(),
      * and report eventual errors correctly. --rgs */
@@ -489,7 +489,7 @@ XS(XS_version_new)
        if ( strcmp(classname,"version") != 0 ) /* inherited new() */
            sv_bless(rv, gv_stashpv(classname, GV_ADD));
 
-       PUSHs(sv_2mortal(rv));
+       mPUSHs(rv);
        PUTBACK;
        return;
     }
@@ -512,7 +512,7 @@ XS(XS_version_stringify)
          else
               Perl_croak(aTHX_ "lobj is not of type version");
 
-         PUSHs(sv_2mortal(vstringify(lobj)));
+         mPUSHs(vstringify(lobj));
 
          PUTBACK;
          return;
@@ -536,7 +536,7 @@ XS(XS_version_numify)
          else
               Perl_croak(aTHX_ "lobj is not of type version");
 
-         PUSHs(sv_2mortal(vnumify(lobj)));
+         mPUSHs(vnumify(lobj));
 
          PUTBACK;
          return;
@@ -560,7 +560,7 @@ XS(XS_version_normal)
          else
               Perl_croak(aTHX_ "lobj is not of type version");
 
-         PUSHs(sv_2mortal(vnormal(lobj)));
+         mPUSHs(vnormal(lobj));
 
          PUTBACK;
          return;
@@ -605,7 +605,7 @@ XS(XS_version_vcmp)
                    rs = newSViv(vcmp(lobj,rvs));
               }
 
-              PUSHs(sv_2mortal(rs));
+              mPUSHs(rs);
          }
 
          PUTBACK;
@@ -624,7 +624,7 @@ XS(XS_version_boolean)
     if (sv_derived_from(ST(0), "version")) {
        SV * const lobj = SvRV(ST(0));
        SV * const rs = newSViv( vcmp(lobj,new_version(newSVpvs("0"))) );
-       PUSHs(sv_2mortal(rs));
+       mPUSHs(rs);
        PUTBACK;
        return;
     }
@@ -687,7 +687,7 @@ XS(XS_version_qv)
        }
        else
        {
-           PUSHs(sv_2mortal(new_version(ver)));
+           mPUSHs(new_version(ver));
        }
 
        PUTBACK;
@@ -951,7 +951,6 @@ XS(XS_PerlIO_get_layers)
        }
 
        if (gv && (io = GvIO(gv))) {
-            dTARGET;
             AV* const av = PerlIO_get_layers(aTHX_ input ?
                                        IoIFP(io) : IoOFP(io));
             I32 i;
@@ -969,25 +968,25 @@ XS(XS_PerlIO_get_layers)
 
                  if (details) {
                       XPUSHs(namok
-                             ? newSVpvn(SvPVX_const(*namsvp), SvCUR(*namsvp))
+                             ? sv_2mortal(newSVpvn(SvPVX_const(*namsvp), SvCUR(*namsvp)))
                              : &PL_sv_undef);
                       XPUSHs(argok
-                             ? newSVpvn(SvPVX_const(*argsvp), SvCUR(*argsvp))
+                             ? sv_2mortal(newSVpvn(SvPVX_const(*argsvp), SvCUR(*argsvp)))
                              : &PL_sv_undef);
                       if (flgok)
-                           XPUSHi(SvIVX(*flgsvp));
+                           mXPUSHi(SvIVX(*flgsvp));
                       else
                            XPUSHs(&PL_sv_undef);
                       nitem += 3;
                  }
                  else {
                       if (namok && argok)
-                           XPUSHs(Perl_newSVpvf(aTHX_ "%"SVf"(%"SVf")",
+                           XPUSHs(sv_2mortal(Perl_newSVpvf(aTHX_ "%"SVf"(%"SVf")",
                                                 SVfARG(*namsvp),
-                                                SVfARG(*argsvp)));
+                                                SVfARG(*argsvp))));
                       else if (namok)
-                           XPUSHs(Perl_newSVpvf(aTHX_ "%"SVf,
-                                                SVfARG(*namsvp)));
+                           XPUSHs(sv_2mortal(Perl_newSVpvf(aTHX_ "%"SVf,
+                                                SVfARG(*namsvp))));
                       else
                            XPUSHs(&PL_sv_undef);
                       nitem++;
@@ -995,7 +994,7 @@ XS(XS_PerlIO_get_layers)
                            const IV flags = SvIVX(*flgsvp);
 
                            if (flags & PERLIO_F_UTF8) {
-                                XPUSHs(newSVpvs("utf8"));
+                                XPUSHs(newSVpvs_flags("utf8", SVs_TEMP));
                                 nitem++;
                            }
                       }
@@ -1118,11 +1117,11 @@ XS(XS_re_regname)
         XSRETURN_UNDEF;
 
     if (items == 2 && SvTRUE(ST(1))) {
-        flags = RXf_HASH_ALL;
+        flags = RXapif_ALL;
     } else {
-        flags = RXf_HASH_ONE;
+        flags = RXapif_ONE;
     }
-    ret = CALLREG_NAMED_BUFF_FETCH(rx, ST(0), (flags | RXf_HASH_REGNAME));
+    ret = CALLREG_NAMED_BUFF_FETCH(rx, ST(0), (flags | RXapif_REGNAME));
 
     if (ret) {
         if (SvROK(ret))
@@ -1157,14 +1156,14 @@ XS(XS_re_regnames)
         XSRETURN_UNDEF;
 
     if (items == 1 && SvTRUE(ST(0))) {
-        flags = RXf_HASH_ALL;
+        flags = RXapif_ALL;
     } else {
-        flags = RXf_HASH_ONE;
+        flags = RXapif_ONE;
     }
 
     SP -= items;
 
-    ret = CALLREG_NAMED_BUFF_ALL(rx, (flags | RXf_HASH_REGNAMES));
+    ret = CALLREG_NAMED_BUFF_ALL(rx, (flags | RXapif_REGNAMES));
 
     SPAGAIN;
 
@@ -1427,8 +1426,8 @@ XS(XS_Tie_Hash_NamedCapture_flags)
     if (items != 0)
         Perl_croak(aTHX_ "Usage: Tie::Hash::NamedCapture::flags()");
 
-       XPUSHs(sv_2mortal(newSVuv(RXf_HASH_ONE)));
-       XPUSHs(sv_2mortal(newSVuv(RXf_HASH_ALL)));
+       mXPUSHu(RXapif_ONE);
+       mXPUSHu(RXapif_ALL);
        PUTBACK;
        return;
 }