In perl.git, the branch yves/hv_h_split has been updated <http://perl5.git.perl.org/perl.git/commitdiff/728e03041b31deae2692138beb96fd7ca6f6519f?hp=66c5e7c96ab95ab7fba6b5eeb1f7175bd8138b05>
- Log ----------------------------------------------------------------- commit 728e03041b31deae2692138beb96fd7ca6f6519f Author: Yves Orton <[email protected]> Date: Mon Feb 18 16:13:08 2013 +0100 reset HvRAND() every hsplit, and properly rotate the bucket_rand. :-) ----------------------------------------------------------------------- Summary of changes: hv.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hv.c b/hv.c index 87c34f6..474a79f 100644 --- a/hv.c +++ b/hv.c @@ -1145,7 +1145,7 @@ S_hsplit(pTHX_ HV *hv) * second from top. After each such insert we rotate the hashed value. So we can * use the same hashed value over and over, and in normal build environments use * very few ops to do so. ROTL32() should produce a single machine operation. */ - bucket_rand= ptr_hash((PTRV)a); + HvRAND(hv)= bucket_rand= ptr_hash((PTRV)a); for (i=0; i<oldsize; i++,aep++) { HE **oentry = aep; @@ -1166,7 +1166,7 @@ S_hsplit(pTHX_ HV *hv) HeNEXT(*bep)= entry; HeNEXT(entry)= tmp; } - ROTL32(bucket_rand,1); + bucket_rand= ROTL32(bucket_rand,1); } else { oentry = &HeNEXT(entry); -- Perl5 Master Repository
