perl 5.003_06: hv.c
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>
Mon, 30 Sep 1996 05:13:28 +0000 (01:13 -0400)
committerAndy Dougherty <doughera@lafcol.lafayette.edu>
Mon, 30 Sep 1996 05:13:28 +0000 (01:13 -0400)
commit72940dca186befa0716f5b6a09c9bdd527de5c66
tree72d395f19763a375651a842ea1b1a99d96aebd0e
parent2736da802602ebb8a87031939ceea385bfa03705
perl 5.003_06: hv.c

Date: Fri, 20 Sep 1996 15:38:57 -0400
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Subject: Re: "Attempt to free non-existent shared string"? (with patch)

I found a subtle problem with the lazydelete mechanism (which is used
to postpone the delete of a entry that may be getting iterated over).
I was using the HeKLEN slot to hold the hint, but the real HeKLEN is
needed later to call unsharepvn().  This means that only magical
hash entries can use the HeKLEN slot to hold flags.

Here's a tested patch against 5.00305 that fixes the problem.
The patch simply moves the LAZYDEL hint to become a SV-level private
flag.

Date: Mon, 30 Sep 1996 01:13:28 -0400
From: Spider Boardman <spider@Orb.Nashua.NH.US>
Subject: Re: pre extending hash? - need speed

The patch below (which is relative to perl5.001l) implements
"keys %hash = 50_000;" (or other integer-evaluable sizes) for
pre-sizing hashes.  I've only moved the patch forward from
when I first did it.  I'm sure the code in hv_ksplit could be
improved.
hv.c