summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2003-07-03 02:32:11 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2003-07-03 06:27:18 +0000
commitd99b02a1a9949639f16470065ea5568cd92f788d (patch)
treee36e1fadc2179e5b5bdfe14ee48c12ac2c0609f1 /sv.c
parent94467548464439e4d684189080f297305d981e5c (diff)
downloadperl-d99b02a1a9949639f16470065ea5568cd92f788d.tar.gz
Re: ext/List/Util/t/weak.t panic
Message-ID: <20030703003211.GB3747@fdgroup.com> p4raw-id: //depot/perl@19943
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sv.c b/sv.c
index 69fbbaacbe..76b1403c25 100644
--- a/sv.c
+++ b/sv.c
@@ -5091,7 +5091,9 @@ S_sv_add_backref(pTHX_ SV *tsv, SV *sv)
else {
av = newAV();
sv_magic(tsv, (SV*)av, PERL_MAGIC_backref, NULL, 0);
- SvREFCNT_dec(av); /* for sv_magic */
+ /* av now has a refcnt of 2, which avoids it getting freed
+ * before us during global cleanup. The extra ref is removed
+ * by magic_killbackrefs() when tsv is being freed */
}
if (AvFILLp(av) >= AvMAX(av)) {
SV **svp = AvARRAY(av);