diff options
-rw-r--r-- | src/hash.h | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -58,10 +58,10 @@ private: | |||
58 | 58 | ||
59 | Hash<key, _value, sizecalc, keyalloc, valuealloc, challoc> &hsh; | 59 | Hash<key, _value, sizecalc, keyalloc, valuealloc, challoc> &hsh; |
60 | key *pKey; | 60 | key *pKey; |
61 | uint32_t nPos; | ||
61 | _value *pValue; | 62 | _value *pValue; |
62 | bool bFilled; | ||
63 | uint32_t hash; | 63 | uint32_t hash; |
64 | uint32_t nPos; | 64 | bool bFilled; |
65 | 65 | ||
66 | public: | 66 | public: |
67 | operator _value() | 67 | operator _value() |
@@ -121,6 +121,7 @@ public: | |||
121 | nFilled( 0 ), | 121 | nFilled( 0 ), |
122 | nDeleted( 0 ), | 122 | nDeleted( 0 ), |
123 | bFilled( NULL ), | 123 | bFilled( NULL ), |
124 | bDeleted( NULL ), | ||
124 | aKeys( NULL ), | 125 | aKeys( NULL ), |
125 | aValues( NULL ), | 126 | aValues( NULL ), |
126 | aHashCodes( NULL ) | 127 | aHashCodes( NULL ) |
@@ -249,9 +250,8 @@ public: | |||
249 | 250 | ||
250 | bool has( key k ) | 251 | bool has( key k ) |
251 | { | 252 | { |
252 | uint32_t hash = __calcHashCode( k ); | ||
253 | bool bFill; | 253 | bool bFill; |
254 | uint32_t nPos = probe( hash, k, bFill ); | 254 | probe( __calcHashCode( k ), k, bFill ); |
255 | 255 | ||
256 | return bFill; | 256 | return bFill; |
257 | } | 257 | } |
@@ -262,8 +262,8 @@ public: | |||
262 | private: | 262 | private: |
263 | iterator( Hash<key, value, sizecalc, keyalloc, valuealloc, challoc> &hsh ) : | 263 | iterator( Hash<key, value, sizecalc, keyalloc, valuealloc, challoc> &hsh ) : |
264 | hsh( hsh ), | 264 | hsh( hsh ), |
265 | bFinished( false ), | 265 | nPos( 0 ), |
266 | nPos( 0 ) | 266 | bFinished( false ) |
267 | { | 267 | { |
268 | nPos = hsh.getFirstPos( bFinished ); | 268 | nPos = hsh.getFirstPos( bFinished ); |
269 | } | 269 | } |
@@ -276,7 +276,6 @@ public: | |||
276 | } | 276 | } |
277 | 277 | ||
278 | Hash<key, value, sizecalc, keyalloc, valuealloc, challoc> &hsh; | 278 | Hash<key, value, sizecalc, keyalloc, valuealloc, challoc> &hsh; |
279 | |||
280 | uint32_t nPos; | 279 | uint32_t nPos; |
281 | bool bFinished; | 280 | bool bFinished; |
282 | 281 | ||
@@ -374,6 +373,7 @@ private: | |||
374 | } | 373 | } |
375 | 374 | ||
376 | bFinished = true; | 375 | bFinished = true; |
376 | return 0; | ||
377 | } | 377 | } |
378 | 378 | ||
379 | uint32_t getNextPos( uint32_t nPos, bool &bFinished ) | 379 | uint32_t getNextPos( uint32_t nPos, bool &bFinished ) |
@@ -386,6 +386,7 @@ private: | |||
386 | } | 386 | } |
387 | 387 | ||
388 | bFinished = true; | 388 | bFinished = true; |
389 | return 0; | ||
389 | } | 390 | } |
390 | 391 | ||
391 | uint32_t probe( uint32_t hash, key k, bool &bFill, bool rehash=true ) | 392 | uint32_t probe( uint32_t hash, key k, bool &bFill, bool rehash=true ) |
@@ -496,10 +497,10 @@ private: | |||
496 | uint32_t nDeleted; | 497 | uint32_t nDeleted; |
497 | uint32_t *bFilled; | 498 | uint32_t *bFilled; |
498 | uint32_t *bDeleted; | 499 | uint32_t *bDeleted; |
499 | uint32_t *aHashCodes; | ||
500 | uint32_t nKeysSize; | 500 | uint32_t nKeysSize; |
501 | value *aValues; | ||
502 | key *aKeys; | 501 | key *aKeys; |
502 | value *aValues; | ||
503 | uint32_t *aHashCodes; | ||
503 | valuealloc va; | 504 | valuealloc va; |
504 | keyalloc ka; | 505 | keyalloc ka; |
505 | challoc ca; | 506 | challoc ca; |