From: Nicholas Clark Date: Fri, 27 Feb 2004 10:27:38 +0000 (+0000) Subject: My re-implementation of hv_clear_placeholders was buggy - not sure why X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=213ce8b3ce4d3f5793ccaac359c1025cb843f91b;p=p5sagit%2Fp5-mst-13.2.git My re-implementation of hv_clear_placeholders was buggy - not sure why the tests still passed. Fixed. p4raw-id: //depot/perl@22391 --- diff --git a/hv.c b/hv.c index e71759f..28c04de 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);