hash_AddElement: return the new node

This commit is contained in:
Jakub Kądziołka
2021-04-16 13:42:17 +02:00
committed by Eldred Habert
parent 5334fc334e
commit 8885f7bcf6
2 changed files with 4 additions and 4 deletions

View File

@@ -29,9 +29,9 @@ typedef struct HashMapEntry *HashMap[HASHMAP_NB_BUCKETS];
* @param map The HashMap to add the element to * @param map The HashMap to add the element to
* @param key The key with which the element will be stored and retrieved * @param key The key with which the element will be stored and retrieved
* @param element The element to add * @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. * Replaces an element with an already-present key in a hashmap.

View File

@@ -46,7 +46,7 @@ static HashType hash(char const *str)
return hash; 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); HashType hashedKey = hash(key);
HalfHashType index = hashedKey; HalfHashType index = hashedKey;
@@ -61,7 +61,7 @@ bool hash_AddElement(HashMap map, char const *key, void *element)
newEntry->next = map[index]; newEntry->next = map[index];
map[index] = newEntry; map[index] = newEntry;
return newEntry->next != NULL; return &newEntry->content;
} }
bool hash_ReplaceElement(HashMap const map, char const *key, void *element) bool hash_ReplaceElement(HashMap const map, char const *key, void *element)