- static uint8_t name##_keys[(1 << UINT32_LOG2(size)) * (INTERNAL_KEY_MAX_LENGTH + 1)]; \
- static const void* name##_nodes[1 << UINT32_LOG2(size)]; \
- static struct HashTable name = { name##_nodes, UINT32_LOG2(size), { true }, name##_keys }
+ enum { name##_KEYS = ((1 << UINT32_LOG2(size)) * (INTERNAL_KEY_MAX_LENGTH + 1)), \
+ name##_SIZE = (1 << UINT32_LOG2(size)), }; \
+ static uint8_t name##_keys[name##_KEYS]; \
+ static const void* name##_nodes[name##_SIZE]; \
+ static struct HashTable name = \
+ { \
+ .mem = name##_nodes, \
+ .max_elts_log2 = UINT32_LOG2(size), \
+ .flags = { .key_internal = true }, \
+ .key_data.mem = name##_keys \
+ }