fix: Fixes in hasntable
This commit is contained in:
+5
-1
@@ -137,9 +137,10 @@ void hashtable_destroy_bucket(hashtable h, int i)
|
|||||||
{
|
{
|
||||||
struct entry *e = h->table[i];
|
struct entry *e = h->table[i];
|
||||||
while (e != NULL) {
|
while (e != NULL) {
|
||||||
|
struct entry *next = e->next;
|
||||||
free((void*)e->key);
|
free((void*)e->key);
|
||||||
e = e->next;
|
|
||||||
free(e);
|
free(e);
|
||||||
|
e = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,6 +178,9 @@ bool ht_iter_next(ht_iterator *iter)
|
|||||||
}
|
}
|
||||||
if (iter->entry == NULL) {
|
if (iter->entry == NULL) {
|
||||||
iter->index++;
|
iter->index++;
|
||||||
|
if (iter->index >= h->size) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
iter->entry = h->table[iter->index];
|
iter->entry = h->table[iter->index];
|
||||||
} else {
|
} else {
|
||||||
iter->entry = iter->entry->next;
|
iter->entry = iter->entry->next;
|
||||||
|
|||||||
Reference in New Issue
Block a user