summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-09-08 20:45:20 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-09-08 21:36:40 -0700
commit77cb3b015781b8e3c7ee73c313ba18cd16dfb442 (patch)
treeb5b8ecc07baf116844af218e14590a0c655af2f3 /sv.c
parentb1b24ee7afadda660049b2e5ed5e566d8d3babbc (diff)
downloadperl-77cb3b015781b8e3c7ee73c313ba18cd16dfb442.tar.gz
Enter gv_fetchsv_nomg
There are so many cases that use this incantation to get around gv_fetchsv’s calling of get-magic-- STRLEN len; const char *name = SvPV_nomg_const(sv,len); gv = gv_fetchpvn_flags(name, len, flags | SvUTF8(sv), type); --that it’s about time we had a shorthand.
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sv.c b/sv.c
index bb9dbd3723..912bfd6845 100644
--- a/sv.c
+++ b/sv.c
@@ -4161,11 +4161,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV* sstr, const I32 flags)
"Undefined value assigned to typeglob");
}
else {
- STRLEN len;
- const char *nambeg = SvPV_nomg_const(sstr, len);
- GV *gv = gv_fetchpvn_flags(
- nambeg, len, SvUTF8(sstr)|GV_ADD, SVt_PVGV
- );
+ GV *gv = gv_fetchsv_nomg(sstr, GV_ADD, SVt_PVGV);
if (dstr != (const SV *)gv) {
const char * const name = GvNAME((const GV *)dstr);
const STRLEN len = GvNAMELEN(dstr);
@@ -8874,11 +8870,7 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **const st, GV **const gvp, const I32 lref)
gv = MUTABLE_GV(sv);
}
else {
- STRLEN len;
- const char * const nambeg = SvPV_nomg_const(sv, len);
- gv = gv_fetchpvn_flags(
- nambeg, len, lref | SvUTF8(sv), SVt_PVCV
- );
+ gv = gv_fetchsv_nomg(sv, lref, SVt_PVCV);
}
*gvp = gv;
if (!gv) {