From: Nicholas Clark Date: Thu, 25 Jan 2007 20:57:56 +0000 (+0000) Subject: The last parameter to gv_stashpv/gv_stashpvn/gv_stashsv is a bitmask X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=da51bb9b4f7f527464b5e38aca8bcb956de1bbbc;p=p5sagit%2Fp5-mst-13.2.git The last parameter to gv_stashpv/gv_stashpvn/gv_stashsv is a bitmask of flags, not a boolean, so correct the documenation and callers. p4raw-id: //depot/perl@29977 --- diff --git a/embed.fnc b/embed.fnc index 53e6f4e..eeedaf8 100644 --- a/embed.fnc +++ b/embed.fnc @@ -289,9 +289,9 @@ Ap |void |gv_fullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool 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|NN 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 poM |HV * |hv_copy_hints_hv|NN HV *const ohv Ap |void |hv_delayfree_ent|NN HV* hv|NULLOK HE* entry diff --git a/ext/B/B.xs b/ext/B/B.xs index 4502782..75fb33b 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -577,7 +577,7 @@ PROTOTYPES: DISABLE 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; diff --git a/ext/IPC/SysV/SysV.xs b/ext/IPC/SysV/SysV.xs index 35a8fde..d2b1ecb 100644 --- a/ext/IPC/SysV/SysV.xs +++ b/ext/IPC/SysV/SysV.xs @@ -216,7 +216,7 @@ SHMLBA() BOOT: { - HV *stash = gv_stashpvn("IPC::SysV", 9, TRUE); + HV *stash = gv_stashpvn("IPC::SysV", 9, GV_ADD); /* * constant subs for IPC::SysV */ diff --git a/ext/PerlIO/via/via.xs b/ext/PerlIO/via/via.xs index 36e739a..5670887 100644 --- a/ext/PerlIO/via/via.xs +++ b/ext/PerlIO/via/via.xs @@ -135,13 +135,13 @@ PerlIOVia_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg, 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]; diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs index aa4b57d..2590bfa 100644 --- a/ext/Storable/Storable.xs +++ b/ext/Storable/Storable.xs @@ -388,7 +388,7 @@ typedef struct stcxt { STMT_START { \ SV *self = newSV(sizeof(stcxt_t) - 1); \ SV *my_sv = newRV_noinc(self); \ - sv_bless(my_sv, gv_stashpv("Storable::Cxt", TRUE)); \ + sv_bless(my_sv, gv_stashpv("Storable::Cxt", GV_ADD)); \ cxt = (stcxt_t *)SvPVX(self); \ Zero(cxt, 1, stcxt_t); \ cxt->my_sv = my_sv; \ @@ -1047,7 +1047,7 @@ static const char byteorderstr_56[] = {BYTEORDER_BYTES_56, 0}; SV *ref; \ HV *stash; \ TRACEME(("blessing 0x%"UVxf" in %s", PTR2UV(s), (p))); \ - stash = gv_stashpv((p), TRUE); \ + stash = gv_stashpv((p), GV_ADD); \ ref = newRV_noinc(s); \ (void) sv_bless(ref, stash); \ SvRV_set(ref, NULL); \ @@ -6377,7 +6377,7 @@ PROTOTYPES: ENABLE BOOT: { - HV *stash = gv_stashpvn("Storable", 8, TRUE); + HV *stash = gv_stashpvn("Storable", 8, GV_ADD); newCONSTSUB(stash, "BIN_MAJOR", newSViv(STORABLE_BIN_MAJOR)); newCONSTSUB(stash, "BIN_MINOR", newSViv(STORABLE_BIN_MINOR)); newCONSTSUB(stash, "BIN_WRITE_MINOR", newSViv(STORABLE_BIN_WRITE_MINOR)); diff --git a/gv.c b/gv.c index 78e528f..9617b82 100644 --- a/gv.c +++ b/gv.c @@ -325,7 +325,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) /* 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; } @@ -371,7 +371,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) 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); @@ -391,7 +391,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) 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", @@ -408,7 +408,7 @@ Perl_gv_fetchmeth(pTHX_ HV *stash, const char *name, STRLEN len, I32 level) /* 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, @@ -540,20 +540,20 @@ Perl_gv_fetchmethod_autoload(pTHX_ HV *stash, const char *name, I32 autoload) 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; } @@ -682,7 +682,7 @@ STATIC HV* S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const char *methpv,const U32 flags) { dVAR; - HV* stash = gv_stashsv(namesv, FALSE); + HV* stash = gv_stashsv(namesv, 0); if (!stash || !(gv_fetchmethod(stash, methpv))) { SV *module = newSVsv(namesv); @@ -694,7 +694,7 @@ S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const char *methp Perl_load_module(aTHX_ PERL_LOADMOD_NOIMPORT, module, NULL); LEAVE; SPAGAIN; - stash = gv_stashsv(namesv, FALSE); + stash = gv_stashsv(namesv, 0); if (!stash) Perl_croak( aTHX_ "panic: Can't use %%%s because %"SVf" is not available", varpv, SVfARG(module)); @@ -708,10 +708,8 @@ S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const char *methp /* =for apidoc gv_stashpv -Returns a pointer to the stash for a specified package. C should -be a valid UTF-8 string and must be null-terminated. If C is set -then the package will be created if it does not already exist. If C -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 to +determine the length of C. =cut */ @@ -725,17 +723,19 @@ Perl_gv_stashpv(pTHX_ const char *name, I32 create) /* =for apidoc gv_stashpvn -Returns a pointer to the stash for a specified package. C should -be a valid UTF-8 string. The C parameter indicates the length of -the C, in bytes. If C is set then the package will be -created if it does not already exist. If C 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 +parameter indicates the length of the C, in bytes. C is passed +to C, so if set to C then the package will be +created if it does not already exist. If the package does not exist and +C 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; @@ -750,11 +750,11 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create) tmpbuf[namelen++] = ':'; tmpbuf[namelen++] = ':'; tmpbuf[namelen] = '\0'; - 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); @@ -766,18 +766,17 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create) /* =for apidoc gv_stashsv -Returns a pointer to the stash for a specified package, which must be a -valid UTF-8 string. See C. +Returns a pointer to the stash for a specified package. See C. =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); } @@ -1056,15 +1055,15 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags, { 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; @@ -1205,7 +1204,7 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags, HV *const hv_tie = newHV(); SV *tie = newRV_noinc((SV*)hv_tie); - sv_bless(tie, gv_stashsv(stashname,1)); + sv_bless(tie, gv_stashsv(stashname,GV_ADD)); hv_magic(hv, (GV*)tie, PERL_MAGIC_tied); sv_magic((SV*)av, (plus ? (SV*)av : NULL), PERL_MAGIC_regdata, NULL, 0); sv_magic(GvSVn(gv), (SV*)gv, PERL_MAGIC_sv, name, len); diff --git a/op.c b/op.c index 6a0fa66..5d78580 100644 --- a/op.c +++ b/op.c @@ -3492,7 +3492,7 @@ Perl_package(pTHX_ OP *o) save_item(PL_curstname); name = SvPV_const(cSVOPo->op_sv, len); - PL_curstash = gv_stashpvn(name, len, TRUE); + PL_curstash = gv_stashpvn(name, len, GV_ADD); sv_setpvn(PL_curstname, name, len); PL_hints |= HINT_BLOCK_SCOPE; diff --git a/perlio.c b/perlio.c index 9396650..9586750 100644 --- a/perlio.c +++ b/perlio.c @@ -902,7 +902,7 @@ XS(XS_io_MODIFY_SCALAR_ATTRIBUTES) 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; } diff --git a/pod/perlapi.pod b/pod/perlapi.pod index 88f5f79..d2259d5 100644 --- a/pod/perlapi.pod +++ b/pod/perlapi.pod @@ -1358,12 +1358,10 @@ Found in file gv.c =item gv_stashpv X -Returns a pointer to the stash for a specified package. C should -be a valid UTF-8 string and must be null-terminated. If C is set -then the package will be created if it does not already exist. If C -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 to +determine the length of C. - HV* gv_stashpv(const char* name, I32 create) + HV* gv_stashpv(const char* name, I32 flags) =for hackers Found in file gv.c @@ -1371,13 +1369,15 @@ Found in file gv.c =item gv_stashpvn X -Returns a pointer to the stash for a specified package. C should -be a valid UTF-8 string. The C parameter indicates the length of -the C, in bytes. If C is set then the package will be -created if it does not already exist. If C 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 +parameter indicates the length of the C, in bytes. C is passed +to C, so if set to C then the package will be +created if it does not already exist. If the package does not exist and +C 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 @@ -1395,10 +1395,9 @@ Found in file handy.h =item gv_stashsv X -Returns a pointer to the stash for a specified package, which must be a -valid UTF-8 string. See C. +Returns a pointer to the stash for a specified package. See C. - HV* gv_stashsv(SV* sv, I32 create) + HV* gv_stashsv(SV* sv, I32 flags) =for hackers Found in file gv.c diff --git a/pod/perlguts.pod b/pod/perlguts.pod index bbf8742..36a0ea1 100644 --- a/pod/perlguts.pod +++ b/pod/perlguts.pod @@ -814,12 +814,12 @@ in the stash C in C's stash. 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. The C flag will create a new package if it is set. +C. The C flag will create a new package if it is set to GV_ADD. The name that C wants is the name of the package whose symbol table you want. The default package is called C
. If you have multiply nested @@ -1187,7 +1187,7 @@ to do this. 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); diff --git a/pp.c b/pp.c index 6f54dc6..e1a45c1 100644 --- a/pp.c +++ b/pp.c @@ -578,7 +578,7 @@ PP(pp_bless) 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); diff --git a/pp_hot.c b/pp_hot.c index dabdc97..e88dbb1 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -2993,7 +2993,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp) : "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 { @@ -3085,7 +3085,7 @@ S_method_common(pTHX_ SV* meth, U32* hashp) } /* 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); diff --git a/pp_sys.c b/pp_sys.c index 974f32a..44adca6 100644 --- a/pp_sys.c +++ b/pp_sys.c @@ -844,7 +844,7 @@ PP(pp_tie) /* 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, SVfARG(*MARK)); @@ -946,7 +946,7 @@ PP(pp_dbmopen) 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"); diff --git a/proto.h b/proto.h index b1ec03b..4f492b0 100644 --- a/proto.h +++ b/proto.h @@ -662,13 +662,13 @@ PERL_CALLCONV void Perl_gv_name_set(pTHX_ GV* gv, const char *name, U32 len, U32 __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2); -PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 create) +PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags) __attribute__nonnull__(pTHX_1); -PERL_CALLCONV HV* Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 create) +PERL_CALLCONV HV* Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 flags) __attribute__nonnull__(pTHX_1); -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 HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv) __attribute__nonnull__(pTHX_1); diff --git a/sv.c b/sv.c index 513a241..dacd535 100644 --- a/sv.c +++ b/sv.c @@ -7769,7 +7769,7 @@ Perl_newSVrv(pTHX_ SV *rv, const char *classname) 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; diff --git a/toke.c b/toke.c index ae4558b..25c3f3e 100644 --- a/toke.c +++ b/toke.c @@ -2659,7 +2659,7 @@ S_intuit_method(pTHX_ char *start, GV *gv, CV *cv) 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)) { #ifdef PERL_MAD soff = s - SvPVX(PL_linestr); #endif @@ -2891,7 +2891,7 @@ S_find_in_my_stash(pTHX_ const char *pkgname, I32 len) pkgname = SvPV_nolen_const(sv); } - return gv_stashpv(pkgname, FALSE); + return gv_stashpv(pkgname, 0); } /* @@ -5556,7 +5556,7 @@ Perl_yylex(pTHX) 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); } @@ -6354,7 +6354,7 @@ Perl_yylex(pTHX) *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"); } diff --git a/universal.c b/universal.c index 3fe831c..d07ff2f 100644 --- a/universal.c +++ b/universal.c @@ -109,7 +109,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, const HV* const name_stash, 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), @@ -157,11 +157,11 @@ Perl_sv_derived_from(pTHX_ SV *sv, const char *name) 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 @@ -362,7 +362,7 @@ XS(XS_UNIVERSAL_can) pkg = SvSTASH(sv); } else { - pkg = gv_stashsv(sv, FALSE); + pkg = gv_stashsv(sv, 0); } if (pkg) { @@ -411,7 +411,7 @@ XS(XS_UNIVERSAL_VERSION) 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; @@ -498,7 +498,7 @@ XS(XS_version_new) rv = new_version(vs); if ( strcmp(classname,"version") != 0 ) /* inherited new() */ - sv_bless(rv, gv_stashpv(classname,TRUE)); + sv_bless(rv, gv_stashpv(classname, GV_ADD)); PUSHs(sv_2mortal(rv)); PUTBACK; diff --git a/utf8.c b/utf8.c index 7d85a88..b43c74b 100644 --- a/utf8.c +++ b/utf8.c @@ -1560,7 +1560,7 @@ Perl_swash_init(pTHX_ const char* pkg, const char* name, SV *listsv, I32 minbits 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);