do { \
unsigned _ha_bkt; \
(add)->hh.hashv = (hashval); \
(add)->hh.key = (char*) (keyptr); \
(add)->hh.keylen = (unsigned) (keylen_in); \
(add)->hh.next = NULL; \
(add)->hh.prev = NULL; \
HASH_MAKE_TABLE(hh,
head); \
} else { \
(add)->hh.tbl = (
head)->hh.tbl; \
HASH_APPEND_LIST(hh,
head, add); \
} \
(
head)->hh.tbl->num_items++; \
HASH_ADD_TO_BKT((
head)->hh.tbl->buckets[_ha_bkt], &(add)->hh); \
HASH_BLOOM_ADD((
head)->hh.tbl, hashval); \
HASH_EMIT_KEY(hh,
head, keyptr, keylen_in); \
} while (0)
#define HASH_TO_BKT(hashv, num_bkts, bkt)
struct quantile_llist_element * head