[perl #78488] Bleadperl 304474c3 breaks GFUJI/Test-LeakTrace-0.13.tar.gz
authorFather Chrysostomos <sprout@cpan.org>
Fri, 22 Oct 2010 01:18:42 +0000 (18:18 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Fri, 22 Oct 2010 03:13:38 +0000 (20:13 -0700)
This commit restores an SvREFCNT_dec that was inadvertently removed.

c8bbf67 removed the SvREFCNT_dec(HeVAL(entry)), adding
SvREFCNT_dec(old_val) instead.

304474c3 reverted that block, but failed to restore the
SvREFCNT_dec(HeVAL(entry)).

The result was that the %INC entry created by do "file" was leaking.

(Y’know, giving out commit bits to just *anyone* who comes along
with a few patches seems dangerous. Has anybody been looking at what
I’m doing?)

hv.c

diff --git a/hv.c b/hv.c
index 08867cf..808a4bf 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -692,6 +692,7 @@ Perl_hv_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen,
                }
                HeVAL(entry) = val;
            } else if (action & HV_FETCH_ISSTORE) {
+               SvREFCNT_dec(HeVAL(entry));
                HeVAL(entry) = val;
            }
        } else if (HeVAL(entry) == &PL_sv_placeholder) {