53{
55 int i;
56 static int primes[] = {
57 509, 509, 1021, 2053, 4093, 8191, 16381, 32771, 65521, INT_MAX};
58 assert(hint >= 0);
59 for (i = 1; primes[i] < hint; i++)
60 ;
61 table =
62 (
T *)
getmem(
sizeof(*table) + primes[i - 1] *
sizeof(table->
buckets[0]));
63 table->
size = primes[i - 1];
66 table->
buckets = (
struct binding **)(table + 1);
67 for (i = 0; i < table->
size; i++) table->
buckets[i] = NULL;
70 return table;
71}
unsigned(* hash)(const void *key)
int(* cmp)(const void *x, const void *y)
struct T::binding ** buckets
static int cmpatom(const void *x, const void *y)
static unsigned hashatom(const void *key)