diff options
Diffstat (limited to 'milkway/mw-hash.c')
-rw-r--r-- | milkway/mw-hash.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/milkway/mw-hash.c b/milkway/mw-hash.c index 86c0497..9a70cf6 100644 --- a/milkway/mw-hash.c +++ b/milkway/mw-hash.c @@ -431,23 +431,23 @@ mw_hash_take (mw_hash_t * hash, return MW_TRUE; } -mw_bool_t +mw_hash_iter_t* mw_hash_first(mw_hash_t *hash, mw_hash_iter_t *iter) { if (!hash->num_buckets) - return MW_FALSE; + return NULL; for (iter->pos = 0; iter->pos < hash->size; iter->pos++) if (hash->buckets[iter->pos]) { iter->key = hash->buckets[iter->pos]->key; iter->value = hash->buckets[iter->pos]->value; - return MW_TRUE; + return iter; } return MW_FALSE; } -mw_bool_t +mw_hash_iter_t* mw_hash_next(mw_hash_t *hash, mw_hash_iter_t *iter) { iter->pos++; @@ -455,10 +455,16 @@ mw_hash_next(mw_hash_t *hash, mw_hash_iter_t *iter) if (hash->buckets[iter->pos]) { iter->key = hash->buckets[iter->pos]->key; iter->value = hash->buckets[iter->pos]->value; - return MW_TRUE; + return iter; } - return MW_FALSE; + return NULL; +} + +size_t +mw_hash_get_size(mw_hash_t *hash) +{ + return hash->num_buckets; } static void |