fix bug leading to losing of hash entries in hash_iter_next

This commit is contained in:
Sergey Anufrienko
2014-10-28 16:42:28 +03:00
parent 9f82aac8ce
commit 92e674e412

View File

@@ -250,12 +250,13 @@ const char * hash_iter_next(hash_iterator_t *iter)
{ {
hash_t *table = iter->table; hash_t *table = iter->table;
hashentry_t *entry = iter->entry; hashentry_t *entry = iter->entry;
int i = iter->index + 1; int i = iter->index;
/* advance until we find the next entry */ /* advance until we find the next entry */
if (entry != NULL) entry = entry->next; if (entry != NULL) entry = entry->next;
if (entry == NULL) { if (entry == NULL) {
/* we're off the end of list, search for a new entry */ /* we're off the end of list, search for a new entry */
i++;
while (i < iter->table->length) { while (i < iter->table->length) {
entry = table->entries[i]; entry = table->entries[i];
if (entry != NULL) { if (entry != NULL) {