Given that @optype and @specialsv_name are hard coded tables, it seems
[p5sagit/p5-mst-13.2.git] / universal.c
index 6999adc..ef73504 100644 (file)
@@ -62,7 +62,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, const HV* const name_stash,
     while (items--) {
        SV* const basename_sv = *svp++;
         HV* basestash = gv_stashsv(basename_sv, 0);
-       if (!basestash || (HvMROMETA(basestash)->fake && !HvFILL(basestash))) {
+       if (!basestash) {
            if (ckWARN(WARN_SYNTAX))
                Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
                            "Can't locate package %"SVf" for the parents of %s",
@@ -284,8 +284,6 @@ Perl_boot_core_UNIVERSAL(pTHX)
     newXSproto("Internals::hash_seed",XS_Internals_hash_seed, file, "");
     newXSproto("Internals::rehash_seed",XS_Internals_rehash_seed, file, "");
     newXSproto("Internals::HvREHASH", XS_Internals_HvREHASH, file, "\\%");
-    newXSproto("Internals::inc_sub_generation",XS_Internals_inc_sub_generation,
-              file, "");
     newXSproto("re::is_regexp", XS_re_is_regexp, file, "$");
     newXSproto("re::regname", XS_re_regname, file, ";$$");
     newXSproto("re::regnames", XS_re_regnames, file, ";$");
@@ -449,15 +447,15 @@ XS(XS_UNIVERSAL_VERSION)
            } else {
                Perl_croak(aTHX_ "%s version %"SVf" required--"
                       "this is only version %"SVf"", HvNAME_get(pkg),
-                      SVfARG(vnumify(req)),
-                      SVfARG(vnumify(sv)));
+                      SVfARG(vstringify(req)),
+                      SVfARG(vstringify(sv)));
            }
        }
 
     }
 
     if ( SvOK(sv) && sv_derived_from(sv, "version") ) {
-       ST(0) = vnumify(sv);
+       ST(0) = vstringify(sv);
     } else {
        ST(0) = sv;
     }
@@ -1057,18 +1055,6 @@ XS(XS_Internals_HvREHASH)        /* Subject to change  */
     Perl_croak(aTHX_ "Internals::HvREHASH $hashref");
 }
 
-XS(XS_Internals_inc_sub_generation)
-{
-    dVAR;
-    /* Using dXSARGS would also have dITEM and dSP,
-     * which define 2 unused local variables.  */
-    dAXMARK;
-    PERL_UNUSED_ARG(cv);
-    PERL_UNUSED_VAR(mark);
-    ++PL_sub_generation;
-    XSRETURN_EMPTY;
-}
-
 XS(XS_re_is_regexp)
 {
     dVAR; 
@@ -1115,7 +1101,7 @@ XS(XS_re_regname)
        }
         {
             if (SvPOK(sv) && re && re->paren_names) {
-                bufs = CALLREG_NAMEDBUF(re,sv,all && SvTRUE(all));
+                bufs = CALLREG_NAMEDBUF_FETCH(re,sv,all && SvTRUE(all));
                 if (bufs) {
                     if (all && SvTRUE(all))
                         XPUSHs(newRV(bufs));