summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hv.c7
-rw-r--r--pod/perldiag.pod7
2 files changed, 1 insertions, 13 deletions
diff --git a/hv.c b/hv.c
index e78f84f132..8b186de57d 100644
--- a/hv.c
+++ b/hv.c
@@ -1630,7 +1630,6 @@ S_clear_placeholders(pTHX_ HV *hv, U32 items)
STATIC void
S_hfreeentries(pTHX_ HV *hv)
{
- int attempts = 100;
STRLEN i = 0;
const bool mpm = PL_phase != PERL_PHASE_DESTRUCT && HvENAME(hv);
@@ -1689,12 +1688,8 @@ S_hfreeentries(pTHX_ HV *hv)
* re-allocated, HvMAX changed etc */
continue;
}
- if (i++ >= HvMAX(hv)) {
+ if (i++ >= HvMAX(hv))
i = 0;
- if (--attempts == 0) {
- Perl_die(aTHX_ "panic: hfreeentries failed to free hash - something is repeatedly re-creating entries");
- }
- }
} /* while */
}
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 8f2ad2913f..b90a141961 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -3423,13 +3423,6 @@ repeatedly, but each time something re-created entries in the glob. Most
likely the glob contains an object with a reference back to the glob and a
destructor that adds a new object to the glob.
-=item panic: hfreeentries failed to free hash
-
-(P) The internal routine used to clear a hash's entries tried repeatedly,
-but each time something added more entries to the hash. Most likely the hash
-contains an object with a reference back to the hash and a destructor that
-adds a new object to the hash.
-
=item panic: INTERPCASEMOD
(P) The lexer got into a bad state at a case modifier.