summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-02-23 11:11:12 +0000
committerNicholas Clark <nick@ccl4.org>2006-02-23 11:11:12 +0000
commit180488f8452e93d2afa0f62b189be1cc9ac6ba1a (patch)
tree9383eeeaa7cf0787e424f50616bce24f647f5f52 /gv.c
parent4115f1412e498d2b0cb499d036610a0e9f8e2c4f (diff)
downloadperl-180488f8452e93d2afa0f62b189be1cc9ac6ba1a.tar.gz
Remove get magic from typeglobs. This means that PVGVs holding
typeglobs never need to use SvPVX. This comes at price - typeglobs were using magic get for their stringificiation, and to pass SvOK(), so need to make typeglobs SvOK by default (by sucking SVp_SCREAM into SVf_OK - it's the only flag left), tweak SvSCREAM() to also check SVp_POK, and teach sv_2[inpu]v how to convert globs. However, it should free up SvPVX for the next part of the plan to pointer indirections, and therefore CPU cache pressure. p4raw-id: //depot/perl@27278
Diffstat (limited to 'gv.c')
-rw-r--r--gv.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gv.c b/gv.c
index d866b6636e..20c2d47fe6 100644
--- a/gv.c
+++ b/gv.c
@@ -205,6 +205,7 @@ Perl_gv_init(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, int multi)
GvCVGEN(gv) = 0;
GvEGV(gv) = gv;
sv_magic((SV*)gv, (SV*)gv, PERL_MAGIC_glob, NULL, 0);
+ SvSCREAM_on(gv);
GvSTASH(gv) = stash;
if (stash)
Perl_sv_add_backref(aTHX_ (SV*)stash, (SV*)gv);