summaryrefslogtreecommitdiffstats
path: root/Hashtable.c
diff options
context:
space:
mode:
authorBenny Baumann <BenBE@geshi.org>2020-11-01 01:09:51 +0100
committerBenny Baumann <BenBE@geshi.org>2020-11-02 22:15:01 +0100
commit45869513bfebba80cc2ab42e4218f68b34b1e6ac (patch)
treef064631dbff141bf1c945db8cff40b7bb82fd169 /Hashtable.c
parent61e14d4bb25268593019e6df3eb02264b4ac8e0e (diff)
Embracing branches
Diffstat (limited to 'Hashtable.c')
-rw-r--r--Hashtable.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Hashtable.c b/Hashtable.c
index a086227c..92337822 100644
--- a/Hashtable.c
+++ b/Hashtable.c
@@ -70,6 +70,7 @@ void Hashtable_delete(Hashtable* this) {
while (walk != NULL) {
if (this->owner)
free(walk->value);
+
HashtableItem* savedWalk = walk;
walk = savedWalk->next;
free(savedWalk);
@@ -90,10 +91,13 @@ void Hashtable_put(Hashtable* this, unsigned int key, void* value) {
} else if ((*bucketPtr)->key == key) {
if (this->owner && (*bucketPtr)->value != value)
free((*bucketPtr)->value);
+
(*bucketPtr)->value = value;
break;
- } else
+ } else {
bucketPtr = &((*bucketPtr)->next);
+ }
+
assert(Hashtable_isConsistent(this));
}
@@ -134,8 +138,9 @@ void* Hashtable_get(Hashtable* this, unsigned int key) {
} else if (bucketPtr->key == key) {
assert(Hashtable_isConsistent(this));
return bucketPtr->value;
- } else
+ } else {
bucketPtr = bucketPtr->next;
+ }
}
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy