summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-03-07 10:33:38 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-03-07 10:33:38 +0000
commit66e4e5d58b6f1a43b01a82c3d198f3a5add40b57 (patch)
tree5dd1c73d5f2a90419ada9a5416d04443f259011b /gv.c
parent82d8f8347aac1265a123c7171e3613e510568391 (diff)
downloadperl-66e4e5d58b6f1a43b01a82c3d198f3a5add40b57.tar.gz
Avoid to load the *+ and *- globs too early.
To silence spurious interpolation warnings, merely create the stash entry for them. Ensure that the re::Tie::Hash::NamedCapture module is always loaded when we have created the tied hashes %+ and %-. Revert change #30483, which is now unnecessary. p4raw-link: @30483 on //depot/perl: 73f68b39467596f862aade4f4b46d6061aa98bd3 p4raw-id: //depot/perl@30490
Diffstat (limited to 'gv.c')
-rw-r--r--gv.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/gv.c b/gv.c
index 95ff9383c7..a75203bfc7 100644
--- a/gv.c
+++ b/gv.c
@@ -1211,8 +1211,8 @@ 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,GV_ADD));
- hv_magic(hv, (GV*)tie, PERL_MAGIC_tied);
+ 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);
@@ -1220,15 +1220,12 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags,
SvREADONLY_on(GvSVn(gv));
else
Perl_hv_store(aTHX_ hv_tie, STR_WITH_LEN("all"), newSViv(1), 0);
-
+
SvREADONLY_on(hv);
SvREADONLY_on(tie);
SvREADONLY_on(av);
-
- if (sv_type == SVt_PVHV)
- require_tie_mod(gv, name, stashname, "FETCH", 0);
- else
- SvREFCNT_dec(stashname);
+
+ require_tie_mod(gv, name, stashname, "FETCH", 0);
break;
}