summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2011-05-11 15:31:40 +0100
committerDavid Mitchell <davem@iabyn.com>2011-05-19 14:49:44 +0100
commit9c80917f6e6fa3fccba3eea4e7014931b5fa5233 (patch)
treea39e248e4b0f38b53fda234370d9ed203579ea06 /hv.c
parent104d7b699c0dfac5bf91d1c05f84b3822c2c3e88 (diff)
downloadperl-9c80917f6e6fa3fccba3eea4e7014931b5fa5233.tar.gz
assume cleared hv can't be re-blessed
followup to previous commit. I'm fairly confident now that a HV being freed in sv_clear() can never get re-blessed, and thus its SvSTASH field is *always* safe to use. The logic behind this is that once you get to sv_clear(), the HV has a refcnt of zero, which means either: * nothing references this, so there's no way to bless it; * we're in SVf_BREAK territory, in which case something may still hold a reference to it, but all destructors will have already been called, so nothing can call bless.
Diffstat (limited to 'hv.c')
0 files changed, 0 insertions, 0 deletions