This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Integrate:
authorNicholas Clark <nick@ccl4.org>
Sun, 7 Mar 2004 11:57:56 +0000 (11:57 +0000)
committerNicholas Clark <nick@ccl4.org>
Sun, 7 Mar 2004 11:57:56 +0000 (11:57 +0000)
commite266888e35811392a58eb8c8dba5e50ae246cf3c
tree01c221dffac3d35655fab78b995d23a2dc814204
parentfcf19a8b177b5bedccac008a63f1ca9059ea596f
Integrate:
[ 22278]
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.

[ 22280]
Now hv_delete is able to ingore placeholders.
(This is an XS visible change in the hash API. But not of documented
behaviour)

[ 22281]
deleting keys in restricted hashes was leaking the entry. Yow!

[ 22282]
Comment to record why we can't clear placeholders in hsplit

[ 22391]
My re-implementation of hv_clear_placeholders was buggy - not sure why
the tests still passed. Fixed.

[ 22393]
In hsplit, if a normal hash has placeholders then clear them before
splitting. We can do this safely because Storable ensures hsplit is
not called while it builds restricted hashes (actually any hashes)
This change may not make things faster, but now we have the choice.
p4raw-link: @22393 on //depot/perl: 18026298eff2588a08fb9adea03ddb6fd64c650b
p4raw-link: @22391 on //depot/perl: 213ce8b3ce4d3f5793ccaac359c1025cb843f91b
p4raw-link: @22282 on //depot/perl: 752f6c60047f2fe3834832a1654d72ea5afe3f22
p4raw-link: @22281 on //depot/perl: 754604c44e26572c47a2c15665bf1009e9e5b219
p4raw-link: @22280 on //depot/perl: e0e97dbabd467d4797d6138693db9ab58187faf3
p4raw-link: @22278 on //depot/perl: d36773897a6f30fc5c947e9ed9a2e06b2e7f3b74

p4raw-id: //depot/maint-5.8/perl@22454
p4raw-integrated: from //depot/perl@22453 'copy in'
ext/Storable/t/restrict.t (@18607..) lib/Hash/Util.t (@21748..)
p4raw-integrated: from //depot/perl@22278 'edit in' hv.c (@22171..)
ext/Storable/t/restrict.t
hv.c
lib/Hash/Util.t