diff --git a/include/hashmap.h b/include/hashmap.h index e1b99d3b..c6e6ba17 100644 --- a/include/hashmap.h +++ b/include/hashmap.h @@ -29,9 +29,9 @@ typedef struct HashMapEntry *HashMap[HASHMAP_NB_BUCKETS]; * @param map The HashMap to add the element to * @param key The key with which the element will be stored and retrieved * @param element The element to add - * @return True if a collision occurred (for statistics) + * @return A pointer to the pointer to the element. */ -bool hash_AddElement(HashMap map, char const *key, void *element); +void **hash_AddElement(HashMap map, char const *key, void *element); /** * Replaces an element with an already-present key in a hashmap. diff --git a/src/hashmap.c b/src/hashmap.c index 02f64d4e..a038c4e0 100644 --- a/src/hashmap.c +++ b/src/hashmap.c @@ -46,7 +46,7 @@ static HashType hash(char const *str) return hash; } -bool hash_AddElement(HashMap map, char const *key, void *element) +void **hash_AddElement(HashMap map, char const *key, void *element) { HashType hashedKey = hash(key); HalfHashType index = hashedKey; @@ -61,7 +61,7 @@ bool hash_AddElement(HashMap map, char const *key, void *element) newEntry->next = map[index]; map[index] = newEntry; - return newEntry->next != NULL; + return &newEntry->content; } bool hash_ReplaceElement(HashMap const map, char const *key, void *element)