diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-03-07 10:33:38 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-03-07 10:33:38 +0000 |
commit | 66e4e5d58b6f1a43b01a82c3d198f3a5add40b57 (patch) | |
tree | 5dd1c73d5f2a90419ada9a5416d04443f259011b /gv.c | |
parent | 82d8f8347aac1265a123c7171e3613e510568391 (diff) | |
download | perl-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.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -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; } |