summaryrefslogtreecommitdiff
path: root/av.c
diff options
context:
space:
mode:
Diffstat (limited to 'av.c')
-rw-r--r--av.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/av.c b/av.c
index 918844c376..f10f1247f4 100644
--- a/av.c
+++ b/av.c
@@ -356,8 +356,8 @@ Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val)
}
AvFILLp(av) = key;
}
- else if (AvREAL(av))
- SvREFCNT_dec(ary[key]);
+ else if (AvREAL(av) && LIKELY(ary[key] != val))
+ SvREFCNT_dec(ary[key]);
ary[key] = val;
if (SvSMAGICAL(av)) {
const MAGIC *mg = SvMAGIC(av);