From 943cf16f5661357086532b2241e6f85bfe43565a Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Wed, 7 Apr 2010 17:44:57 +0000 Subject: Corrected a long standing yet seldom witnessed hash bug. It was triggered when a hashtable was filled, then some items were removed, then enough items were added to trigger a rehash. --- src/hash.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/hash.h') diff --git a/src/hash.h b/src/hash.h index cb3001a..1cb539b 100644 --- a/src/hash.h +++ b/src/hash.h @@ -1115,7 +1115,8 @@ namespace Bu // Delete all of the old data for( uint32_t j = 0; j < nOldCapacity; j++ ) { - if( (bOldFilled[j/32]&(1<<(j%32)))!=0 ) + if( (bOldFilled[j/32]&(1<<(j%32)))!=0 && + (bOldDeleted[j/32]&(1<<(j%32)))==0 ) { va.destroy( &aOldValues[j] ); ka.destroy( &aOldKeys[j] ); -- cgit v1.2.3