28static const unsigned sizes[] = {
29 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, 49157, 98317,
30 196613, 393241, 786433, 1572869, 3145739, 6291469, 12582917, 25165843,
31 50331653, 100663319, 201326611, 402653189, 805306457, 1610612741, 0
101 entry->
next = *bucket;
114 const unsigned old_n_buckets = *hash->
n_buckets;
115 for (
unsigned b = 0;
b < old_n_buckets; ++
b) {
118 const unsigned h =
e->hash % new_n_buckets;
134 const unsigned h_nomod)
148 const unsigned h = h_nomod % *hash->
n_buckets;
173 elem->
hash = h_nomod;
176 const unsigned next_n_buckets = *(hash->
n_buckets + 1);
177 if (next_n_buckets != 0 && (hash->
count + 1) >= next_n_buckets) {
178 if (!
rehash(hash, next_n_buckets)) {
195 const unsigned h = h_nomod % *hash->
n_buckets;
199 if (h_nomod ==
e->hash &&
209 const unsigned prev_n_buckets = *(hash->
n_buckets - 1);
210 if (hash->
count - 1 <= prev_n_buckets) {
211 if (!
rehash(hash, prev_n_buckets)) {
* e
Definition inflate.c:1404
unsigned f
Definition inflate.c:1572
static PuglViewHint int value
Definition pugl.h:1708
void * zix_hash_find(const ZixHash *hash, const void *value)
Definition hash.c:146
ZixStatus zix_hash_insert(ZixHash *hash, const void *value, void **inserted)
Definition hash.c:155
void zix_hash_foreach(ZixHash *hash, ZixHashVisitFunc f, void *user_data)
Definition hash.c:222
uint32_t(* ZixHashFunc)(const void *value)
Definition hash.h:41
void(* ZixHashVisitFunc)(void *value, void *user_data)
Definition hash.h:46
bool(* ZixEqualFunc)(const void *a, const void *b)
Definition common.h:123
ZixStatus zix_hash_remove(ZixHash *hash, const void *value)
Definition hash.c:193
struct ZixHashImpl ZixHash
Definition hash.h:36
ZixStatus
Definition common.h:81
ZixHash * zix_hash_new(ZixHashFunc hash_func, ZixEqualFunc equal_func, size_t value_size)
Definition hash.c:55
void zix_hash_free(ZixHash *hash)
Definition hash.c:74
size_t zix_hash_size(const ZixHash *hash)
Definition hash.c:94
@ ZIX_STATUS_EXISTS
Definition common.h:86
@ ZIX_STATUS_NOT_FOUND
Definition common.h:85
@ ZIX_STATUS_NO_MEM
Definition common.h:84
@ ZIX_STATUS_SUCCESS
Definition common.h:82
struct ZixHashEntry ZixHashEntry
unsigned int uint32_t
Definition mid.cpp:100
uint32_t hash
Non-modulo hash value.
Definition hash.c:35
struct ZixHashEntry * next
Next entry in bucket.
Definition hash.c:34
ZixHashEntry ** buckets
Definition hash.c:42
size_t value_size
Definition hash.c:44
unsigned count
Definition hash.c:45
ZixEqualFunc equal_func
Definition hash.c:41
const unsigned * n_buckets
Definition hash.c:43
ZixHashFunc hash_func
Definition hash.c:40
memcpy(hh, h, RAND_HEAD_LEN)
ZCONST char * key
Definition crypt.c:587
uch h[RAND_HEAD_LEN]
Definition crypt.c:459