From 3653e015056cdca31665ba1e9a1ea3b08eed217e Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 31 Jul 2022 14:18:13 -0300 Subject: [PATCH] hashtable_set() --- src/include/hashtable.h | 1 + src/include/hashtable/hashtable.c | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/include/hashtable.h b/src/include/hashtable.h index d75aede4..a3c724ec 100644 --- a/src/include/hashtable.h +++ b/src/include/hashtable.h @@ -20,5 +20,6 @@ bool hashtable_insert(hashtable*, char*, void*); bool hashtable_remove(hashtable*, char*); void hashtable_destroy(hashtable*); void* hashtable_get(hashtable*, char*); +bool* hashtable_set(hashtable*, char*, void*); #endif diff --git a/src/include/hashtable/hashtable.c b/src/include/hashtable/hashtable.c index 4fbd3cb2..940470bf 100644 --- a/src/include/hashtable/hashtable.c +++ b/src/include/hashtable/hashtable.c @@ -2,8 +2,6 @@ #include #include -// temporary for testing - size_t hash(char* ptr, size_t size){ size_t hash = 0; for(size_t i = 0; i < size; ++i){ @@ -98,6 +96,22 @@ bool hashtable_remove(hashtable* table, char* key){ } +bool hashtable_set(hashtable* table, char* key, void* value){ + hashtableentry* entry = getentry(table, key); + + if(!entry->key) + return false; + + while(entry && strcmp(entry->key, key)) + entry = entry->next; + + if(!entry) return false; + + entry->val = value; + + return true; +} + void* hashtable_get(hashtable* table, char* key){ hashtableentry* entry = getentry(table, key);