diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2002-05-29 13:21:58 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-05-29 13:21:58 +0000 |
commit | 87f0b2135fb8ed0f01fabb0bd9eac630ea278e75 (patch) | |
tree | ade1d0602fcf39e6ce65669c7add245b8e451a67 /sv.c | |
parent | b0ef04295d6eb384855a3fa2790521ad3437adc1 (diff) | |
download | perl-87f0b2135fb8ed0f01fabb0bd9eac630ea278e75.tar.gz |
Recover some of the #16845.
p4raw-id: //depot/perl@16858
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -4461,7 +4461,13 @@ Perl_sv_magicext(pTHX_ SV* sv, SV* obj, int how, MGVTBL *vtable, /* Some magic sontains a reference loop, where the sv and object refer to each other. To prevent a reference loop that would prevent such objects being freed, we look for such loops and if we find one we - avoid incrementing the object refcount. */ + avoid incrementing the object refcount. + + Note we cannot do this to avoid self-tie loops as intervening RV must + have its REFCNT incremented to keep it in existence - instead we could + special case them in sv_free() -- NI-S + + */ if (!obj || obj == sv || how == PERL_MAGIC_arylen || how == PERL_MAGIC_qr || |