diff options
author | David Mitchell <davem@iabyn.com> | 2011-05-11 15:31:40 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2011-05-19 14:49:44 +0100 |
commit | 9c80917f6e6fa3fccba3eea4e7014931b5fa5233 (patch) | |
tree | a39e248e4b0f38b53fda234370d9ed203579ea06 /hv.c | |
parent | 104d7b699c0dfac5bf91d1c05f84b3822c2c3e88 (diff) | |
download | perl-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