summaryrefslogtreecommitdiff
path: root/hv.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2004-02-27 10:27:38 +0000
committerNicholas Clark <nick@ccl4.org>2004-02-27 10:27:38 +0000
commit213ce8b3ce4d3f5793ccaac359c1025cb843f91b (patch)
treeff5a731d50bd37ce7674b6caa783a5232269b052 /hv.c
parentdbb69c4a3755de9f9aec2aa6bc5e5af7e7b75f1a (diff)
downloadperl-213ce8b3ce4d3f5793ccaac359c1025cb843f91b.tar.gz
My re-implementation of hv_clear_placeholders was buggy - not sure why
the tests still passed. Fixed. p4raw-id: //depot/perl@22391
Diffstat (limited to 'hv.c')
-rw-r--r--hv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/hv.c b/hv.c
index e71759f9ae..28c04de6e0 100644
--- a/hv.c
+++ b/hv.c
@@ -1501,7 +1501,7 @@ Perl_hv_clear_placeholders(pTHX_ HV *hv)
if (!entry)
continue;
- for (; entry; first=0, oentry = &HeNEXT(entry), entry = *oentry) {
+ for (; entry; entry = *oentry) {
if (HeVAL(entry) == &PL_sv_placeholder) {
*oentry = HeNEXT(entry);
if (first && !*oentry)
@@ -1519,6 +1519,9 @@ Perl_hv_clear_placeholders(pTHX_ HV *hv)
HvPLACEHOLDERS(hv) = 0;
return;
}
+ } else {
+ oentry = &HeNEXT(entry);
+ first = 0;
}
}
} while (--i >= 0);