summaryrefslogtreecommitdiff
path: root/doop.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-05-15 02:15:25 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-05-15 02:15:25 +0000
commit6ff81951f79dec32e15a779d288c1047f0e4fefb (patch)
tree53c645778f7a018e0bd74a2ec2fe9c64833ea13d /doop.c
parent48c036b1eb8f866b948f33704ee6152323a5aad9 (diff)
downloadperl-6ff81951f79dec32e15a779d288c1047f0e4fefb.tar.gz
[win32] merge changes#906,907,909,910 from maintbranch
p4raw-link: @910 on //depot/maint-5.004/perl: ae941ac0da8f453f0d31df7b7293e50b3e5a46f1 p4raw-link: @909 on //depot/maint-5.004/perl: 8b3d696ffd11cf2e49f6eaa575b829ab0a55352d p4raw-link: @907 on //depot/maint-5.004/perl: 3cb3c1abada5765ba4166ebe59e2e20d737ec21b p4raw-link: @906 on //depot/maint-5.004/perl: ae389c8a29b487f4434c465442dfb611507a4a38 p4raw-id: //depot/win32/perl@977
Diffstat (limited to 'doop.c')
-rw-r--r--doop.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/doop.c b/doop.c
index e92f49e668..e527cdee18 100644
--- a/doop.c
+++ b/doop.c
@@ -483,7 +483,11 @@ do_kv(ARGSproto)
sv_magic(TARG, Nullsv, 'k', Nullch, 0);
}
LvTYPE(TARG) = 'k';
- LvTARG(TARG) = (SV*)hv;
+ if (LvTARG(TARG) != (SV*)hv) {
+ if (LvTARG(TARG))
+ SvREFCNT_dec(LvTARG(TARG));
+ LvTARG(TARG) = SvREFCNT_inc(hv);
+ }
PUSHs(TARG);
RETURN;
}