make it possible to specify the initial size of a map in libgu

This commit is contained in:
kr.angelov
2014-10-24 09:17:22 +00:00
parent dc62e52636
commit 8abbd2f67e
2 changed files with 14 additions and 9 deletions

View File

@@ -18,16 +18,19 @@ typedef struct GuMap GuMap;
GuMap*
gu_make_map(size_t key_size, GuHasher* hasher,
size_t value_size, const void* default_value,
size_t init_size,
GuPool* pool);
#define GU_MAP_DEFAULT_INIT_SIZE 11
#define gu_new_map(K, HASHER, V, DV, POOL) \
(gu_make_map(sizeof(K), (HASHER), sizeof(V), (DV), (POOL)))
(gu_make_map(sizeof(K), (HASHER), sizeof(V), (DV), GU_MAP_DEFAULT_INIT_SIZE, (POOL)))
#define gu_new_set(K, HASHER, POOL) \
(gu_make_map(sizeof(K), (HASHER), 0, NULL, (POOL)))
(gu_make_map(sizeof(K), (HASHER), 0, NULL, GU_MAP_DEFAULT_INIT_SIZE, (POOL)))
#define gu_new_addr_map(K, V, DV, POOL) \
(gu_make_map(sizeof(K), gu_addr_hasher, sizeof(V), (DV), (POOL)))
(gu_make_map(sizeof(K), gu_addr_hasher, sizeof(V), (DV), GU_MAP_DEFAULT_INIT_SIZE, (POOL)))
size_t
gu_map_count(GuMap* map);