From 8abbd2f67e3d1289bf296668af8eefab2a1f0290 Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Fri, 24 Oct 2014 09:17:22 +0000 Subject: make it possible to specify the initial size of a map in libgu --- src/runtime/c/gu/map.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/runtime/c/gu/map.h') diff --git a/src/runtime/c/gu/map.h b/src/runtime/c/gu/map.h index a1234e99b..50af70572 100644 --- a/src/runtime/c/gu/map.h +++ b/src/runtime/c/gu/map.h @@ -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); -- cgit v1.2.3