This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Teach checkAUTHORS.pl about everyone in Changes5.8.[2-8], adding to
[perl5.git] / universal.c
index 5c147b6..097247b 100644 (file)
@@ -1,7 +1,7 @@
 /*    universal.c
  *
  *    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- *    2005, by Larry Wall and others
+ *    2005, 2006, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -35,6 +35,7 @@ STATIC SV *
 S_isa_lookup(pTHX_ HV *stash, const char *name, HV* name_stash,
              int len, int level)
 {
+    dVAR;
     AV* av;
     GV* gv;
     GV** gvp;
@@ -59,7 +60,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, HV* name_stash,
        Perl_croak(aTHX_ "Recursive inheritance detected in package '%s'",
                   hvname);
 
-    gvp = (GV**)hv_fetch(stash, "::ISA::CACHE::", 14, FALSE);
+    gvp = (GV**)hv_fetchs(stash, "::ISA::CACHE::", FALSE);
 
     if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (subgen = GvSV(gv))
        && (hv = GvHV(gv)))
@@ -81,11 +82,11 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, HV* name_stash,
        }
     }
 
-    gvp = (GV**)hv_fetch(stash,"ISA",3,FALSE);
+    gvp = (GV**)hv_fetchs(stash, "ISA", FALSE);
 
     if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = GvAV(gv))) {
        if (!hv || !subgen) {
-           gvp = (GV**)hv_fetch(stash, "::ISA::CACHE::", 14, TRUE);
+           gvp = (GV**)hv_fetchs(stash, "::ISA::CACHE::", TRUE);
 
            gv = *gvp;
 
@@ -140,6 +141,7 @@ for class names as well as for objects.
 bool
 Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
 {
+    dVAR;
     HV *stash;
 
     SvGETMAGIC(sv);
@@ -204,6 +206,7 @@ XS(XS_Internals_inc_sub_generation);
 void
 Perl_boot_core_UNIVERSAL(pTHX)
 {
+    dVAR;
     const char file[] = __FILE__;
 
     newXS("UNIVERSAL::isa",             XS_UNIVERSAL_isa,         file);
@@ -255,6 +258,7 @@ Perl_boot_core_UNIVERSAL(pTHX)
 
 XS(XS_UNIVERSAL_isa)
 {
+    dVAR;
     dXSARGS;
 
     if (items != 2)
@@ -278,6 +282,7 @@ XS(XS_UNIVERSAL_isa)
 
 XS(XS_UNIVERSAL_can)
 {
+    dVAR;
     dXSARGS;
     SV   *sv;
     const char *name;
@@ -319,6 +324,7 @@ XS(XS_UNIVERSAL_can)
 
 XS(XS_UNIVERSAL_VERSION)
 {
+    dVAR;
     dXSARGS;
     HV *pkg;
     GV **gvp;
@@ -336,7 +342,7 @@ XS(XS_UNIVERSAL_VERSION)
         pkg = gv_stashsv(ST(0), FALSE);
     }
 
-    gvp = pkg ? (GV**)hv_fetch(pkg,"VERSION",7,FALSE) : Null(GV**);
+    gvp = pkg ? (GV**)hv_fetchs(pkg, "VERSION", FALSE) : Null(GV**);
 
     if (gvp && isGV(gv = *gvp) && (sv = GvSV(gv)) && SvOK(sv)) {
         SV * const nsv = sv_newmortal();
@@ -392,6 +398,7 @@ XS(XS_UNIVERSAL_VERSION)
 
 XS(XS_version_new)
 {
+    dVAR;
     dXSARGS;
     if (items > 3)
        Perl_croak(aTHX_ "Usage: version::new(class, version)");
@@ -433,6 +440,7 @@ XS(XS_version_new)
 
 XS(XS_version_stringify)
 {
+     dVAR;
      dXSARGS;
      if (items < 1)
          Perl_croak(aTHX_ "Usage: version::stringify(lobj, ...)");
@@ -455,6 +463,7 @@ XS(XS_version_stringify)
 
 XS(XS_version_numify)
 {
+     dVAR;
      dXSARGS;
      if (items < 1)
          Perl_croak(aTHX_ "Usage: version::numify(lobj, ...)");
@@ -477,6 +486,7 @@ XS(XS_version_numify)
 
 XS(XS_version_normal)
 {
+     dVAR;
      dXSARGS;
      if (items < 1)
          Perl_croak(aTHX_ "Usage: version::normal(lobj, ...)");
@@ -499,6 +509,7 @@ XS(XS_version_normal)
 
 XS(XS_version_vcmp)
 {
+     dVAR;
      dXSARGS;
      if (items < 1)
          Perl_croak(aTHX_ "Usage: version::vcmp(lobj, ...)");
@@ -543,13 +554,14 @@ XS(XS_version_vcmp)
 
 XS(XS_version_boolean)
 {
-     dXSARGS;
-     if (items < 1)
-         Perl_croak(aTHX_ "Usage: version::boolean(lobj, ...)");
-     SP -= items;
+    dVAR;
+    dXSARGS;
+    if (items < 1)
+       Perl_croak(aTHX_ "Usage: version::boolean(lobj, ...)");
+    SP -= items;
     if (sv_derived_from(ST(0), "version")) {
        SV * const lobj = SvRV(ST(0));
-       SV * const rs = newSViv( vcmp(lobj,new_version(newSVpvn("0",1))) );
+       SV * const rs = newSViv( vcmp(lobj,new_version(newSVpvs("0"))) );
        PUSHs(sv_2mortal(rs));
        PUTBACK;
        return;
@@ -560,6 +572,7 @@ XS(XS_version_boolean)
 
 XS(XS_version_noop)
 {
+    dVAR;
     dXSARGS;
     if (items < 1)
        Perl_croak(aTHX_ "Usage: version::noop(lobj, ...)");
@@ -574,6 +587,7 @@ XS(XS_version_noop)
 
 XS(XS_version_is_alpha)
 {
+    dVAR;
     dXSARGS;
     if (items != 1)
        Perl_croak(aTHX_ "Usage: version::is_alpha(lobj)");
@@ -593,6 +607,7 @@ XS(XS_version_is_alpha)
 
 XS(XS_version_qv)
 {
+    dVAR;
     dXSARGS;
     if (items != 1)
        Perl_croak(aTHX_ "Usage: version::qv(ver)");
@@ -629,6 +644,7 @@ XS(XS_version_qv)
 
 XS(XS_utf8_is_utf8)
 {
+     dVAR;
      dXSARGS;
      if (items != 1)
          Perl_croak(aTHX_ "Usage: utf8::is_utf8(sv)");
@@ -644,6 +660,7 @@ XS(XS_utf8_is_utf8)
 
 XS(XS_utf8_valid)
 {
+     dVAR;
      dXSARGS;
      if (items != 1)
          Perl_croak(aTHX_ "Usage: utf8::valid(sv)");
@@ -661,6 +678,7 @@ XS(XS_utf8_valid)
 
 XS(XS_utf8_encode)
 {
+    dVAR;
     dXSARGS;
     if (items != 1)
        Perl_croak(aTHX_ "Usage: utf8::encode(sv)");
@@ -670,6 +688,7 @@ XS(XS_utf8_encode)
 
 XS(XS_utf8_decode)
 {
+    dVAR;
     dXSARGS;
     if (items != 1)
        Perl_croak(aTHX_ "Usage: utf8::decode(sv)");
@@ -684,6 +703,7 @@ XS(XS_utf8_decode)
 
 XS(XS_utf8_upgrade)
 {
+    dVAR;
     dXSARGS;
     if (items != 1)
        Perl_croak(aTHX_ "Usage: utf8::upgrade(sv)");
@@ -700,6 +720,7 @@ XS(XS_utf8_upgrade)
 
 XS(XS_utf8_downgrade)
 {
+    dVAR;
     dXSARGS;
     if (items < 1 || items > 2)
        Perl_croak(aTHX_ "Usage: utf8::downgrade(sv, failok=0)");
@@ -716,6 +737,7 @@ XS(XS_utf8_downgrade)
 
 XS(XS_utf8_native_to_unicode)
 {
+ dVAR;
  dXSARGS;
  const UV uv = SvUV(ST(0));
 
@@ -728,6 +750,7 @@ XS(XS_utf8_native_to_unicode)
 
 XS(XS_utf8_unicode_to_native)
 {
+ dVAR;
  dXSARGS;
  const UV uv = SvUV(ST(0));
 
@@ -740,6 +763,7 @@ XS(XS_utf8_unicode_to_native)
 
 XS(XS_Internals_SvREADONLY)    /* This is dangerous stuff. */
 {
+    dVAR;
     dXSARGS;
     SV * const sv = SvRV(ST(0));
 
@@ -765,6 +789,7 @@ XS(XS_Internals_SvREADONLY) /* This is dangerous stuff. */
 
 XS(XS_Internals_SvREFCNT)      /* This is dangerous stuff. */
 {
+    dVAR;
     dXSARGS;
     SV * const sv = SvRV(ST(0));
 
@@ -780,6 +805,7 @@ XS(XS_Internals_SvREFCNT)   /* This is dangerous stuff. */
 
 XS(XS_Internals_hv_clear_placehold)
 {
+    dVAR;
     dXSARGS;
 
     if (items != 1)
@@ -798,6 +824,7 @@ XS(XS_Regexp_DESTROY)
 
 XS(XS_PerlIO_get_layers)
 {
+    dVAR;
     dXSARGS;
     if (items < 1 || items % 2 == 0)
        Perl_croak(aTHX_ "Usage: PerlIO_get_layers(filehandle[,args])");
@@ -900,7 +927,7 @@ XS(XS_PerlIO_get_layers)
                            const IV flags = SvIVX(*flgsvp);
 
                            if (flags & PERLIO_F_UTF8) {
-                                XPUSHs(newSVpvn("utf8", 4));
+                                XPUSHs(newSVpvs("utf8"));
                                 nitem++;
                            }
                       }
@@ -919,6 +946,7 @@ XS(XS_PerlIO_get_layers)
 
 XS(XS_Internals_hash_seed)
 {
+    dVAR;
     /* Using dXSARGS would also have dITEM and dSP,
      * which define 2 unused local variables.  */
     dAXMARK;
@@ -929,6 +957,7 @@ XS(XS_Internals_hash_seed)
 
 XS(XS_Internals_rehash_seed)
 {
+    dVAR;
     /* Using dXSARGS would also have dITEM and dSP,
      * which define 2 unused local variables.  */
     dAXMARK;
@@ -939,6 +968,7 @@ XS(XS_Internals_rehash_seed)
 
 XS(XS_Internals_HvREHASH)      /* Subject to change  */
 {
+    dVAR;
     dXSARGS;
     if (SvROK(ST(0))) {
        const HV * const hv = (HV *) SvRV(ST(0));
@@ -954,6 +984,7 @@ XS(XS_Internals_HvREHASH)   /* Subject to change  */
 
 XS(XS_Internals_inc_sub_generation)
 {
+    dVAR;
     /* Using dXSARGS would also have dITEM and dSP,
      * which define 2 unused local variables.  */
     dAXMARK;