@@ -118,9 +118,9 @@ struct hashmap *hashmap_new_with_allocator(
118118 return NULL ;
119119 }
120120 memset (map -> buckets , 0 , map -> bucketsz * map -> nbuckets );
121- map -> growat = map -> nbuckets * 2 ;
122- map -> shrinkat = map -> nbuckets * 1 ;
123- map -> malloc = _malloc ;
121+ map -> growat = map -> nbuckets * 0.75 ;
122+ map -> shrinkat = map -> nbuckets * 0.10 ;
123+ map -> malloc = _malloc ;
124124 map -> realloc = _realloc ;
125125 map -> free = _free ;
126126 return map ;
@@ -192,16 +192,16 @@ void hashmap_clear(struct hashmap *map, bool update_cap) {
192192 }
193193 memset (map -> buckets , 0 , map -> bucketsz * map -> nbuckets );
194194 map -> mask = map -> nbuckets - 1 ;
195- map -> growat = map -> nbuckets * 2 ;
196- map -> shrinkat = map -> nbuckets * 1 ;
195+ map -> growat = map -> nbuckets * 0.75 ;
196+ map -> shrinkat = map -> nbuckets * 0.10 ;
197197}
198198
199199
200200static bool resize (struct hashmap * map , size_t new_cap ) {
201201 struct hashmap * map2 = hashmap_new_with_allocator (map -> malloc , map -> realloc , map -> free ,
202- map -> elsize , new_cap , map -> seed0 ,
203- map -> seed1 , map -> hash , map -> compare ,
204- map -> elfree , map -> udata );
202+ map -> elsize , new_cap , map -> seed0 ,
203+ map -> seed1 , map -> hash , map -> compare ,
204+ map -> elfree , map -> udata );
205205 if (!map2 ) {
206206 return false;
207207 }
@@ -277,7 +277,6 @@ void *hashmap_set(struct hashmap *map, const void *item) {
277277 memcpy (map -> spare , bucket , map -> bucketsz );
278278 memcpy (bucket , entry , map -> bucketsz );
279279 memcpy (entry , map -> spare , map -> bucketsz );
280- return NULL ;
281280 }
282281 i = (i + 1 ) & map -> mask ;
283282 entry -> dib += 1 ;
0 commit comments