diff --git a/hashtable.c b/hashtable.c index 338e5bd..c0d4e2e 100644 --- a/hashtable.c +++ b/hashtable.c @@ -132,9 +132,11 @@ void hashtable_foreach(hashtable_t *table, { int i; for (i = 0; i < table->bucket_count; i++) { - hashtable_entry_t *chain; - for (chain = table->buckets[i]; chain != NULL; chain = chain->next) { + hashtable_entry_t *chain = table->buckets[i]; + while (chain != NULL) { + hashtable_entry_t *next = chain->next; iterator(context, chain->key, chain->value); + chain = next; } } }