Change 30295 by [EMAIL PROTECTED] on 2007/02/14 18:04:52

        Integrate:
        [ 29977]
        The last parameter to gv_stashpv/gv_stashpvn/gv_stashsv is a bitmask
        of flags, not a boolean, so correct the documenation and callers.
        
        [ 30017]
        Silence a few pedantic warnings
        
        [ 30030]
        One last gv_fetchpv() that should be GV_ADD rather than TRUE.
        
        [ 30034]
        newPADOP()'s sv parameter is never NULL, so mark it as so.
        (Well, in theory it could be NULL if someone is creating ops during
        symbol table destruction, but snowballs in hell, etc.
        This is usually the point where Jarkko observes that the aliens are
        looking for a free slot in their diaries...)
        
        [ 30043]
        Change 30034 wasn't enough to silence the warnings - also need to
        pass a never-NULL parameter to newPADOP from newGVOP

Affected files ...

... //depot/maint-5.8/perl/embed.fnc#210 integrate
... //depot/maint-5.8/perl/ext/B/B.xs#28 integrate
... //depot/maint-5.8/perl/ext/IPC/SysV/SysV.xs#2 integrate
... //depot/maint-5.8/perl/ext/PerlIO/via/via.xs#13 integrate
... //depot/maint-5.8/perl/gv.c#100 integrate
... //depot/maint-5.8/perl/op.c#201 integrate
... //depot/maint-5.8/perl/perlio.c#107 integrate
... //depot/maint-5.8/perl/pod/perlapi.pod#99 integrate
... //depot/maint-5.8/perl/pod/perlguts.pod#27 integrate
... //depot/maint-5.8/perl/pp.c#136 integrate
... //depot/maint-5.8/perl/pp_hot.c#132 integrate
... //depot/maint-5.8/perl/pp_sys.c#143 integrate
... //depot/maint-5.8/perl/proto.h#202 integrate
... //depot/maint-5.8/perl/sv.c#344 integrate
... //depot/maint-5.8/perl/toke.c#167 integrate
... //depot/maint-5.8/perl/universal.c#63 integrate
... //depot/maint-5.8/perl/utf8.c#78 integrate

Differences ...

==== //depot/maint-5.8/perl/embed.fnc#210 (text) ====
Index: perl/embed.fnc
--- perl/embed.fnc#209~30292~   2007-02-14 09:29:10.000000000 -0800
+++ perl/embed.fnc      2007-02-14 10:04:52.000000000 -0800
@@ -306,9 +306,9 @@
 pMox   |GP *   |newGP          |NN GV *const gv
 Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* 
name|STRLEN len|int multi
 Ap     |void   |gv_name_set    |NN GV* gv|NULLOK const char *name|U32 len|U32 
flags
-Apd    |HV*    |gv_stashpv     |NN const char* name|I32 create
-Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 create
-Apd    |HV*    |gv_stashsv     |NULLOK SV* sv|I32 create
+Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
+Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
+Apd    |HV*    |gv_stashsv     |NULLOK SV* sv|I32 flags
 Apd    |void   |hv_clear       |NULLOK HV* tb
 Ap     |void   |hv_delayfree_ent|NN HV* hv|NULLOK HE* entry
 Apd    |SV*    |hv_delete      |NULLOK HV* tb|NN const char* key|I32 klen|I32 
flags
@@ -566,7 +566,7 @@
 ApaR   |HV*    |newHVhv        |NULLOK HV* hv
 Apa    |IO*    |newIO
 Apa    |OP*    |newLISTOP      |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* 
last
-Apa    |OP*    |newPADOP       |I32 type|I32 flags|NULLOK SV* sv
+Apa    |OP*    |newPADOP       |I32 type|I32 flags|NN SV* sv
 Apa    |OP*    |newPMOP        |I32 type|I32 flags
 Apa    |OP*    |newPVOP        |I32 type|I32 flags|NULLOK char* pv
 Apa    |SV*    |newRV          |NN SV* sv

==== //depot/maint-5.8/perl/ext/B/B.xs#28 (text) ====
Index: perl/ext/B/B.xs
--- perl/ext/B/B.xs#27~30141~   2007-02-05 14:46:22.000000000 -0800
+++ perl/ext/B/B.xs     2007-02-14 10:04:52.000000000 -0800
@@ -492,7 +492,7 @@
 
 BOOT:
 {
-    HV *stash = gv_stashpvn("B", 1, TRUE);
+    HV *stash = gv_stashpvn("B", 1, GV_ADD);
     AV *export_ok = perl_get_av("B::EXPORT_OK",TRUE);
     MY_CXT_INIT;
     specialsv_list[0] = Nullsv;

==== //depot/maint-5.8/perl/ext/IPC/SysV/SysV.xs#2 (text) ====
Index: perl/ext/IPC/SysV/SysV.xs
--- perl/ext/IPC/SysV/SysV.xs#1~17645~  2002-07-19 12:29:57.000000000 -0700
+++ perl/ext/IPC/SysV/SysV.xs   2007-02-14 10:04:52.000000000 -0800
@@ -216,7 +216,7 @@
 
 BOOT:
 {
-    HV *stash = gv_stashpvn("IPC::SysV", 9, TRUE);
+    HV *stash = gv_stashpvn("IPC::SysV", 9, GV_ADD);
     /*
      * constant subs for IPC::SysV
      */

==== //depot/maint-5.8/perl/ext/PerlIO/via/via.xs#13 (text) ====
Index: perl/ext/PerlIO/via/via.xs
--- perl/ext/PerlIO/via/via.xs#12~30279~        2007-02-14 03:47:20.000000000 
-0800
+++ perl/ext/PerlIO/via/via.xs  2007-02-14 10:04:52.000000000 -0800
@@ -135,13 +135,13 @@
            STRLEN pkglen = 0;
            const char *pkg = SvPV(arg, pkglen);
            s->obj = SvREFCNT_inc(arg);
-           s->stash = gv_stashpvn(pkg, pkglen, FALSE);
+           s->stash = gv_stashpvn(pkg, pkglen, 0);
            if (!s->stash) {
                SvREFCNT_dec(s->obj);
                s->obj =
                    newSVpvn(Perl_form(aTHX_ "PerlIO::via::%s", pkg),
                             pkglen + 13);
-               s->stash = gv_stashpvn(SvPVX_const(s->obj), pkglen + 13, FALSE);
+               s->stash = gv_stashpvn(SvPVX_const(s->obj), pkglen + 13, 0);
            }
            if (s->stash) {
                char lmode[8];

==== //depot/maint-5.8/perl/gv.c#100 (text) ====
Index: perl/gv.c
--- perl/gv.c#99~30292~ 2007-02-14 09:29:10.000000000 -0800
+++ perl/gv.c   2007-02-14 10:04:52.000000000 -0800
@@ -317,7 +317,7 @@
     /* UNIVERSAL methods should be callable without a stash */
     if (!stash) {
        level = -1;  /* probably appropriate */
-       if(!(stash = gv_stashpvs("UNIVERSAL", FALSE)))
+       if(!(stash = gv_stashpvs("UNIVERSAL", 0)))
            return 0;
     }
 
@@ -363,7 +363,7 @@
            HV* basestash;
 
            packlen -= 7;
-           basestash = gv_stashpvn(hvname, packlen, TRUE);
+           basestash = gv_stashpvn(hvname, packlen, GV_ADD);
            gvp = (GV**)hv_fetchs(basestash, "ISA", FALSE);
            if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = GvAV(gv))) {
                gvp = (GV**)hv_fetchs(stash, "ISA", TRUE);
@@ -383,7 +383,7 @@
        I32 items = AvFILLp(av) + 1;
        while (items--) {
            SV* const sv = *svp++;
-           HV* const basestash = gv_stashsv(sv, FALSE);
+           HV* const basestash = gv_stashsv(sv, 0);
            if (!basestash) {
                if (ckWARN(WARN_MISC))
                    Perl_warner(aTHX_ packWARN(WARN_MISC), "Can't locate 
package %"SVf" for @%s::ISA",
@@ -400,7 +400,7 @@
     /* if at top level, try UNIVERSAL */
 
     if (level == 0 || level == -1) {
-       lastchance = gv_stashpvs("UNIVERSAL", FALSE);
+       lastchance = gv_stashpvs("UNIVERSAL", 0);
 
        if (lastchance) {
            if ((gv = gv_fetchmeth(lastchance, name, len,
@@ -531,20 +531,20 @@
            SV * const tmpstr = sv_2mortal(Perl_newSVpvf(aTHX_ "%s::SUPER",
                                                  CopSTASHPV(PL_curcop)));
            /* __PACKAGE__::SUPER stash should be autovivified */
-           stash = gv_stashpvn(SvPVX_const(tmpstr), SvCUR(tmpstr), TRUE);
+           stash = gv_stashpvn(SvPVX_const(tmpstr), SvCUR(tmpstr), GV_ADD);
            DEBUG_o( Perl_deb(aTHX_ "Treating %s as %s::%s\n",
                         origname, HvNAME_get(stash), name) );
        }
        else {
             /* don't autovifify if ->NoSuchStash::method */
-            stash = gv_stashpvn(origname, nsplit - origname, FALSE);
+            stash = gv_stashpvn(origname, nsplit - origname, 0);
 
            /* however, explicit calls to Pkg::SUPER::method may
               happen, and may require autovivification to work */
            if (!stash && (nsplit - origname) >= 7 &&
                strnEQ(nsplit - 7, "::SUPER", 7) &&
-               gv_stashpvn(origname, nsplit - origname - 7, FALSE))
-             stash = gv_stashpvn(origname, nsplit - origname, TRUE);
+               gv_stashpvn(origname, nsplit - origname - 7, 0))
+             stash = gv_stashpvn(origname, nsplit - origname, GV_ADD);
        }
        ostash = stash;
     }
@@ -667,7 +667,7 @@
 STATIC void
 S_require_errno(pTHX_ GV *gv)
 {
-    HV* stash = gv_stashpvs("Errno", FALSE);
+    HV* stash = gv_stashpvs("Errno", 0);
 
     if (!stash || !(gv_fetchmethod(stash, "TIEHASH"))) {
        dSP;
@@ -678,7 +678,7 @@
                          newSVpvs("Errno"), NULL);
        LEAVE;
        SPAGAIN;
-       stash = gv_stashpvs("Errno", FALSE);
+       stash = gv_stashpvs("Errno", 0);
        if (!stash || !(gv_fetchmethod(stash, "TIEHASH")))
            Perl_croak(aTHX_ "Can't use %%! because Errno.pm is not available");
     }
@@ -687,10 +687,8 @@
 /*
 =for apidoc gv_stashpv
 
-Returns a pointer to the stash for a specified package.  C<name> should
-be a valid UTF-8 string and must be null-terminated.  If C<create> is set
-then the package will be created if it does not already exist.  If C<create>
-is not set and the package does not exist then NULL is returned.
+Returns a pointer to the stash for a specified package.  Uses C<strlen> to
+determine the length of C<name, then calls C<gv_stashpvn()>.
 
 =cut
 */
@@ -704,17 +702,19 @@
 /*
 =for apidoc gv_stashpvn
 
-Returns a pointer to the stash for a specified package.  C<name> should
-be a valid UTF-8 string.  The C<namelen> parameter indicates the length of
-the C<name>, in bytes.  If C<create> is set then the package will be
-created if it does not already exist.  If C<create> is not set and the
-package does not exist then NULL is returned.
+Returns a pointer to the stash for a specified package.  The C<namelen>
+parameter indicates the length of the C<name>, in bytes.  C<flags> is passed
+to C<gv_fetchpvn_flags()>, so if set to C<GV_ADD> then the package will be
+created if it does not already exist.  If the package does not exist and
+C<flags> is 0 (or any other setting that does not create packages) then NULL
+is returned.
+
 
 =cut
 */
 
 HV*
-Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create)
+Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 flags)
 {
     char smallbuf[128];
     char *tmpbuf;
@@ -728,11 +728,11 @@
     Copy(name,tmpbuf,namelen,char);
     tmpbuf[namelen++] = ':';
     tmpbuf[namelen++] = ':';
-    tmpgv = gv_fetchpvn_flags(tmpbuf, namelen, create, SVt_PVHV);
+    tmpgv = gv_fetchpvn_flags(tmpbuf, namelen, flags, SVt_PVHV);
     if (tmpbuf != smallbuf)
        Safefree(tmpbuf);
     if (!tmpgv)
-       return 0;
+       return NULL;
     if (!GvHV(tmpgv))
        GvHV(tmpgv) = newHV();
     stash = GvHV(tmpgv);
@@ -744,18 +744,17 @@
 /*
 =for apidoc gv_stashsv
 
-Returns a pointer to the stash for a specified package, which must be a
-valid UTF-8 string.  See C<gv_stashpv>.
+Returns a pointer to the stash for a specified package.  See C<gv_stashpvn>.
 
 =cut
 */
 
 HV*
-Perl_gv_stashsv(pTHX_ SV *sv, I32 create)
+Perl_gv_stashsv(pTHX_ SV *sv, I32 flags)
 {
     STRLEN len;
     const char * const ptr = SvPV_const(sv,len);
-    return gv_stashpvn(ptr, len, create);
+    return gv_stashpvn(ptr, len, flags);
 }
 
 
@@ -1022,15 +1021,15 @@
                        {
                            const char *pname;
                            av_push(av, newSVpvn(pname = "NDBM_File",9));
-                           gv_stashpvn(pname, 9, TRUE);
+                           gv_stashpvn(pname, 9, GV_ADD);
                            av_push(av, newSVpvn(pname = "DB_File",7));
-                           gv_stashpvn(pname, 7, TRUE);
+                           gv_stashpvn(pname, 7, GV_ADD);
                            av_push(av, newSVpvn(pname = "GDBM_File",9));
-                           gv_stashpvn(pname, 9, TRUE);
+                           gv_stashpvn(pname, 9, GV_ADD);
                            av_push(av, newSVpvn(pname = "SDBM_File",9));
-                           gv_stashpvn(pname, 9, TRUE);
+                           gv_stashpvn(pname, 9, GV_ADD);
                            av_push(av, newSVpvn(pname = "ODBM_File",9));
-                           gv_stashpvn(pname, 9, TRUE);
+                           gv_stashpvn(pname, 9, GV_ADD);
                        }
                }
                break;

==== //depot/maint-5.8/perl/op.c#201 (text) ====
Index: perl/op.c
--- perl/op.c#200~30294~        2007-02-14 09:41:03.000000000 -0800
+++ perl/op.c   2007-02-14 10:04:52.000000000 -0800
@@ -3034,8 +3034,8 @@
     padop->op_padix = pad_alloc(type, SVs_PADTMP);
     SvREFCNT_dec(PAD_SVl(padop->op_padix));
     PAD_SETSV(padop->op_padix, sv);
-    if (sv)
-       SvPADTMP_on(sv);
+    assert(sv);
+    SvPADTMP_on(sv);
     padop->op_next = (OP*)padop;
     padop->op_flags = (U8)flags;
     if (PL_opargs[type] & OA_RETSCALAR)
@@ -3048,12 +3048,12 @@
 OP *
 Perl_newGVOP(pTHX_ I32 type, I32 flags, GV *gv)
 {
+    assert(gv);
 #ifdef USE_ITHREADS
-    if (gv)
-       GvIN_PAD_on(gv);
-    return newPADOP(type, flags, SvREFCNT_inc_simple(gv));
+    GvIN_PAD_on(gv);
+    return newPADOP(type, flags, SvREFCNT_inc_simple_NN(gv));
 #else
-    return newSVOP(type, flags, SvREFCNT_inc_simple(gv));
+    return newSVOP(type, flags, SvREFCNT_inc_simple_NN(gv));
 #endif
 }
 
@@ -3086,13 +3086,13 @@
        const char *name;
        sv = cSVOPo->op_sv;
        name = SvPV_const(sv, len);
-       PL_curstash = gv_stashpvn(name,len,TRUE);
+       PL_curstash = gv_stashpvn(name,len,GV_ADD);
        sv_setpvn(PL_curstname, name, len);
        op_free(o);
     }
     else {
        deprecate("\"package\" with no arguments");
-       sv_setpv(PL_curstname,"<none>");
+       sv_setpvs(PL_curstname,"<none>");
        PL_curstash = Nullhv;
     }
     PL_hints |= HINT_BLOCK_SCOPE;

==== //depot/maint-5.8/perl/perlio.c#107 (text) ====
Index: perl/perlio.c
--- perl/perlio.c#106~30286~    2007-02-14 06:15:49.000000000 -0800
+++ perl/perlio.c       2007-02-14 10:04:52.000000000 -0800
@@ -895,7 +895,7 @@
 SV *
 PerlIO_tab_sv(pTHX_ PerlIO_funcs *tab)
 {
-    HV * const stash = gv_stashpvs("PerlIO::Layer", TRUE);
+    HV * const stash = gv_stashpvs("PerlIO::Layer", GV_ADD);
     SV * const sv = sv_bless(newRV_noinc(newSViv(PTR2IV(tab))), stash);
     return sv;
 }

==== //depot/maint-5.8/perl/pod/perlapi.pod#99 (text+w) ====
Index: perl/pod/perlapi.pod
--- perl/pod/perlapi.pod#98~30292~      2007-02-14 09:29:10.000000000 -0800
+++ perl/pod/perlapi.pod        2007-02-14 10:04:52.000000000 -0800
@@ -1324,12 +1324,10 @@
 =item gv_stashpv
 X<gv_stashpv>
 
-Returns a pointer to the stash for a specified package.  C<name> should
-be a valid UTF-8 string and must be null-terminated.  If C<create> is set
-then the package will be created if it does not already exist.  If C<create>
-is not set and the package does not exist then NULL is returned.
+Returns a pointer to the stash for a specified package.  Uses C<strlen> to
+determine the length of C<name, then calls C<gv_stashpvn()>.
 
-       HV*     gv_stashpv(const char* name, I32 create)
+       HV*     gv_stashpv(const char* name, I32 flags)
 
 =for hackers
 Found in file gv.c
@@ -1337,13 +1335,15 @@
 =item gv_stashpvn
 X<gv_stashpvn>
 
-Returns a pointer to the stash for a specified package.  C<name> should
-be a valid UTF-8 string.  The C<namelen> parameter indicates the length of
-the C<name>, in bytes.  If C<create> is set then the package will be
-created if it does not already exist.  If C<create> is not set and the
-package does not exist then NULL is returned.
+Returns a pointer to the stash for a specified package.  The C<namelen>
+parameter indicates the length of the C<name>, in bytes.  C<flags> is passed
+to C<gv_fetchpvn_flags()>, so if set to C<GV_ADD> then the package will be
+created if it does not already exist.  If the package does not exist and
+C<flags> is 0 (or any other setting that does not create packages) then NULL
+is returned.
 
-       HV*     gv_stashpvn(const char* name, U32 namelen, I32 create)
+
+       HV*     gv_stashpvn(const char* name, U32 namelen, I32 flags)
 
 =for hackers
 Found in file gv.c
@@ -1361,10 +1361,9 @@
 =item gv_stashsv
 X<gv_stashsv>
 
-Returns a pointer to the stash for a specified package, which must be a
-valid UTF-8 string.  See C<gv_stashpv>.
+Returns a pointer to the stash for a specified package.  See C<gv_stashpvn>.
 
-       HV*     gv_stashsv(SV* sv, I32 create)
+       HV*     gv_stashsv(SV* sv, I32 flags)
 
 =for hackers
 Found in file gv.c

==== //depot/maint-5.8/perl/pod/perlguts.pod#27 (text) ====
Index: perl/pod/perlguts.pod
--- perl/pod/perlguts.pod#26~29912~     2007-01-21 15:33:27.000000000 -0800
+++ perl/pod/perlguts.pod       2007-02-14 10:04:52.000000000 -0800
@@ -814,12 +814,12 @@
 
 To get the stash pointer for a particular package, use the function:
 
-    HV*  gv_stashpv(const char* name, I32 create)
-    HV*  gv_stashsv(SV*, I32 create)
+    HV*  gv_stashpv(const char* name, I32 flags)
+    HV*  gv_stashsv(SV*, I32 flags)
 
 The first function takes a literal string, the second uses the string stored
 in the SV.  Remember that a stash is just a hash table, so you get back an
-C<HV*>.  The C<create> flag will create a new package if it is set.
+C<HV*>.  The C<flags> flag will create a new package if it is set to GV_ADD.
 
 The name that C<gv_stash*v> wants is the name of the package whose symbol table
 you want.  The default package is called C<main>.  If you have multiply nested
@@ -1172,7 +1172,7 @@
     CODE:
         hash = newHV();
         tie = newRV_noinc((SV*)newHV());
-        stash = gv_stashpv("MyTie", TRUE);
+        stash = gv_stashpv("MyTie", GV_ADD);
         sv_bless(tie, stash);
         hv_magic(hash, (GV*)tie, PERL_MAGIC_tied);
         RETVAL = newRV_noinc(hash);

==== //depot/maint-5.8/perl/pp.c#136 (text) ====
Index: perl/pp.c
--- perl/pp.c#135~30294~        2007-02-14 09:41:03.000000000 -0800
+++ perl/pp.c   2007-02-14 10:04:52.000000000 -0800
@@ -557,7 +557,7 @@
        if (len == 0 && ckWARN(WARN_MISC))
            Perl_warner(aTHX_ packWARN(WARN_MISC),
                   "Explicit blessing to '' (assuming package main)");
-       stash = gv_stashpvn(ptr, len, TRUE);
+       stash = gv_stashpvn(ptr, len, GV_ADD);
     }
 
     (void)sv_bless(TOPs, stash);

==== //depot/maint-5.8/perl/pp_hot.c#132 (text) ====
Index: perl/pp_hot.c
--- perl/pp_hot.c#131~30291~    2007-02-14 08:37:49.000000000 -0800
+++ perl/pp_hot.c       2007-02-14 10:04:52.000000000 -0800
@@ -3098,7 +3098,7 @@
                                    : "on an undefined value");
            }
            /* assume it's a package name */
-           stash = gv_stashpvn(packname, packlen, FALSE);
+           stash = gv_stashpvn(packname, packlen, 0);
            if (!stash)
                packsv = sv;
             else {
@@ -3174,7 +3174,7 @@
        }
        
        /* we're relying on gv_fetchmethod not autovivifying the stash */
-       if (gv_stashpvn(packname, packlen, FALSE)) {
+       if (gv_stashpvn(packname, packlen, 0)) {
            Perl_croak(aTHX_
                       "Can't locate object method \"%s\" via package \"%.*s\"",
                       leaf, (int)packlen, packname);

==== //depot/maint-5.8/perl/pp_sys.c#143 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c#142~30291~    2007-02-14 08:37:49.000000000 -0800
+++ perl/pp_sys.c       2007-02-14 10:04:52.000000000 -0800
@@ -840,7 +840,7 @@
        /* Not clear why we don't call call_method here too.
         * perhaps to get different error message ?
         */
-       stash = gv_stashsv(*MARK, FALSE);
+       stash = gv_stashsv(*MARK, 0);
        if (!stash || !(gv = gv_fetchmethod(stash, methname))) {
            DIE(aTHX_ "Can't locate object method \"%s\" via package 
\"%"SVf"\"",
                 methname, (void*)*MARK);
@@ -941,7 +941,7 @@
 
     HV * const hv = (HV*)POPs;
     SV * const sv = sv_2mortal(newSVpvs("AnyDBM_File"));
-    stash = gv_stashsv(sv, FALSE);
+    stash = gv_stashsv(sv, 0);
     if (!stash || !(gv = gv_fetchmethod(stash, "TIEHASH"))) {
        PUTBACK;
        require_pv("AnyDBM_File.pm");

==== //depot/maint-5.8/perl/proto.h#202 (text+w) ====
Index: perl/proto.h
--- perl/proto.h#201~30292~     2007-02-14 09:29:10.000000000 -0800
+++ perl/proto.h        2007-02-14 10:04:52.000000000 -0800
@@ -382,9 +382,9 @@
 PERL_CALLCONV GP *     Perl_newGP(pTHX_ GV *const gv);
 PERL_CALLCONV void     Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, 
STRLEN len, int multi);
 PERL_CALLCONV void     Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 
len, U32 flags);
-PERL_CALLCONV HV*      Perl_gv_stashpv(pTHX_ const char* name, I32 create);
+PERL_CALLCONV HV*      Perl_gv_stashpv(pTHX_ const char* name, I32 flags);
 PERL_CALLCONV HV*      Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, 
I32 create);
-PERL_CALLCONV HV*      Perl_gv_stashsv(pTHX_ SV* sv, I32 create);
+PERL_CALLCONV HV*      Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
 PERL_CALLCONV void     Perl_hv_clear(pTHX_ HV* tb);
 PERL_CALLCONV void     Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry);
 PERL_CALLCONV SV*      Perl_hv_delete(pTHX_ HV* tb, const char* key, I32 klen, 
I32 flags);
@@ -899,7 +899,8 @@
 
 PERL_CALLCONV OP*      Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
                        __attribute__malloc__
-                       __attribute__warn_unused_result__;
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV OP*      Perl_newPMOP(pTHX_ I32 type, I32 flags)
                        __attribute__malloc__

==== //depot/maint-5.8/perl/sv.c#344 (text) ====
Index: perl/sv.c
--- perl/sv.c#343~30292~        2007-02-14 09:29:10.000000000 -0800
+++ perl/sv.c   2007-02-14 10:04:52.000000000 -0800
@@ -660,7 +660,7 @@
        newroot->next = aroot;
        aroot = newroot;
        PL_body_arenas = (void *) newroot;
-       DEBUG_m(PerlIO_printf(Perl_debug_log, "new arenaset %p\n", aroot));
+       DEBUG_m(PerlIO_printf(Perl_debug_log, "new arenaset %p\n", 
(void*)aroot));
     }
 
     /* ok, now have arena-set with at least 1 empty/available arena-desc */
@@ -3306,7 +3306,7 @@
     stype = SvTYPE(sstr);
     dtype = SvTYPE(dstr);
 
-    SvAMAGIC_off(dstr);
+    (void)SvAMAGIC_off(dstr);
     if ( SvVOK(dstr) ) 
     {
        /* need to nuke the magic */
@@ -7158,7 +7158,7 @@
     new_SV(sv);
 
     SV_CHECK_THINKFIRST(rv);
-    SvAMAGIC_off(rv);
+    (void)SvAMAGIC_off(rv);
 
     if (SvTYPE(rv) >= SVt_PVMG) {
        const U32 refcnt = SvREFCNT(rv);
@@ -7183,7 +7183,7 @@
     SvROK_on(rv);
 
     if (classname) {
-       HV* const stash = gv_stashpv(classname, TRUE);
+       HV* const stash = gv_stashpv(classname, GV_ADD);
        (void)sv_bless(rv, stash);
     }
     return sv;
@@ -7383,7 +7383,7 @@
        }
     } else {
        if (SvAMAGIC(sv)) {
-           SvAMAGIC_off(sv);
+           (void)SvAMAGIC_off(sv);
            S_reset_amagic(aTHX_ sv, FALSE);
        }
     }

==== //depot/maint-5.8/perl/toke.c#167 (text) ====
Index: perl/toke.c
--- perl/toke.c#166~30292~      2007-02-14 09:29:10.000000000 -0800
+++ perl/toke.c 2007-02-14 10:04:52.000000000 -0800
@@ -2279,7 +2279,7 @@
        if (indirgv && GvCVu(indirgv))
            return 0;
        /* filehandle or package name makes it a method */
-       if (!gv || GvIO(indirgv) || gv_stashpvn(tmpbuf, len, FALSE)) {
+       if (!gv || GvIO(indirgv) || gv_stashpvn(tmpbuf, len, 0)) {
            s = PEEKSPACE(s);
            if ((PL_bufend - s) >= 2 && *s == '=' && *(s+1) == '>')
                return 0;       /* no assumptions -- "=>" quotes bearword */
@@ -2496,7 +2496,7 @@
             pkgname = SvPV_nolen_const(sv);
     }
 
-    return gv_stashpv(pkgname, FALSE);
+    return gv_stashpv(pkgname, 0);
 }
 
 STATIC char *
@@ -4576,7 +4576,7 @@
                            d = PL_tokenbuf;
                            while (isLOWER(*d))
                                d++;
-                           if (!*d && !gv_stashpv(PL_tokenbuf,FALSE))
+                           if (!*d && !gv_stashpv(PL_tokenbuf, 0))
                                Perl_warner(aTHX_ packWARN(WARN_RESERVED), 
PL_warn_reserved,
                                       PL_tokenbuf);
                        }
@@ -5308,7 +5308,7 @@
                *PL_tokenbuf = '\0';
                s = force_word(s,WORD,TRUE,TRUE,FALSE);
                if (isIDFIRST_lazy_if(PL_tokenbuf,UTF))
-                   gv_stashpvn(PL_tokenbuf, strlen(PL_tokenbuf), TRUE);
+                   gv_stashpvn(PL_tokenbuf, strlen(PL_tokenbuf), GV_ADD);
                else if (*s == '<')
                    yyerror("<> should be quotes");
            }

==== //depot/maint-5.8/perl/universal.c#63 (text) ====
Index: perl/universal.c
--- perl/universal.c#62~30259~  2007-02-13 08:04:12.000000000 -0800
+++ perl/universal.c    2007-02-14 10:04:52.000000000 -0800
@@ -108,7 +108,7 @@
            I32 items = AvFILLp(av) + 1;
            while (items--) {
                SV* const sv = *svp++;
-               HV* const basestash = gv_stashsv(sv, FALSE);
+               HV* const basestash = gv_stashsv(sv, 0);
                if (!basestash) {
                    if (ckWARN(WARN_MISC))
                        Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
@@ -155,11 +155,11 @@
        stash = SvOBJECT(sv) ? SvSTASH(sv) : NULL;
     }
     else {
-        stash = gv_stashsv(sv, FALSE);
+        stash = gv_stashsv(sv, 0);
     }
 
     if (stash) {
-       HV * const name_stash = gv_stashpv(name, FALSE);
+       HV * const name_stash = gv_stashpv(name, 0);
        return isa_lookup(stash, name, name_stash, strlen(name), 0);
     }
     else
@@ -272,7 +272,7 @@
             pkg = SvSTASH(sv);
     }
     else {
-        pkg = gv_stashsv(sv, FALSE);
+        pkg = gv_stashsv(sv, 0);
     }
 
     if (pkg) {
@@ -301,7 +301,7 @@
         pkg = SvSTASH(sv);
     }
     else {
-        pkg = gv_stashsv(ST(0), FALSE);
+        pkg = gv_stashsv(ST(0), 0);
     }
 
     gvp = pkg ? (GV**)hv_fetchs(pkg, "VERSION", FALSE) : NULL;

==== //depot/maint-5.8/perl/utf8.c#78 (text) ====
Index: perl/utf8.c
--- perl/utf8.c#77~30051~       2007-01-28 13:56:48.000000000 -0800
+++ perl/utf8.c 2007-02-14 10:04:52.000000000 -0800
@@ -1533,7 +1533,7 @@
     dSP;
     const size_t pkg_len = strlen(pkg);
     const size_t name_len = strlen(name);
-    HV * const stash = gv_stashpvn(pkg, pkg_len, FALSE);
+    HV * const stash = gv_stashpvn(pkg, pkg_len, 0);
     SV* errsv_save;
 
     PUSHSTACKi(PERLSI_MAGIC);
End of Patch.

Reply via email to