summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2013-10-28 12:38:46 -0700
committerFather Chrysostomos <sprout@cpan.org>2013-10-28 16:15:10 -0700
commit2e3295e33c63f6b4e7c3db43ec277607d5ce716d (patch)
treed5bd6c528caa976f4d710bb40754e4de4340668c /gv.c
parentf03015cd13f257d2f93b154f1f908d7d6cc407e0 (diff)
downloadperl-2e3295e33c63f6b4e7c3db43ec277607d5ce716d.tar.gz
pp.c:pp_undef: Don’t vivify the scalar slot
When PERL_DONT_CREATE_GVSV is defined, perl generally does not vivify the scalar slot in every GV. But it hides that implementation detail by vivifying it when *foo{SCALAR} is accessed. undef(*foo) was one exception to this. It vivified the scalar in the scalar slot regardless of whether PERL_DONT_CREATE_GVSV was defined. Until recently, it was not safe to remove this exception, because a typeglob with no scalar could be a candidate for downgrading (see gv.c:gv_try_downgrade), causing global pointers like PL_DBgv to point to freed SVs. Recent commits have fixed all those cases, so this is now safe.
Diffstat (limited to 'gv.c')
0 files changed, 0 insertions, 0 deletions