summaryrefslogtreecommitdiff
path: root/MANIFEST
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2021-07-24 16:20:56 +0000
committerNicholas Clark <nick@ccl4.org>2021-07-26 07:06:00 +0000
commitc23e25b4e677ccabda2bc164083171818f764db0 (patch)
treec43ae37d25b547e3eebd27dfef9ea99fb4fe7be0 /MANIFEST
parentf1c1602aa05e6e31a961fec177e6d315ca1db236 (diff)
downloadperl-c23e25b4e677ccabda2bc164083171818f764db0.tar.gz
S_clear_placeholders() should call HvHASKFLAGS_off() if no keys remain.
This isn't essential - HvHASKFLAGS() set when there are no keys with flags merely disables some potential optimisations. (The other way round - not being set when keys have flags would be a bug). This is a regression I introduced in Feb 2004 with commit d36773897a6f30fc: hv_clear_placeholders now manipulates the linked lists directly, rather than using the iterator interface and calling hv_delete This will allow hv_delete to be simplified to remove most of the special casing related to placeholders. However several people have looked at the code since then and no-one has realised that with the logic as-was, this call had to be unreachable. Also avoid calling HvPLACEHOLDERS_get() twice - each caller has already done this, so pass the value in.
Diffstat (limited to 'MANIFEST')
-rw-r--r--MANIFEST1
1 files changed, 1 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 712316de13..7c94ce9176 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -5878,6 +5878,7 @@ t/op/grep.t See if grep() and map() work
t/op/groups.t See if $( works
t/op/gv.t See if typeglobs work
t/op/hash.t See if the complexity attackers are repelled
+t/op/hash-clear-placeholders.t FIXME
t/op/hash-rt85026.t See if hash iteration/deletion works
t/op/hashassign.t See if hash assignments work
t/op/hashwarn.t See if warnings for bad hash assignments work