Re: API for iterating the g_hash_table

> I only see the the g_hash_table_foreach() here. But sometimes people may 
> like to iterate through a hash table and stop the iteration when certain 
> conditions are met.

It is rather trivial to construct a GList of hash table keys (or
values) using g_hash_table_foreach. Of course it's only useful on
a table whose contents change never or seldom because the list
has to be updated on each change. Anyway, here's what I use. I
was too lazy to make Append_key() the right type.

void append_key(void *k, void *v, GList **keys)

GList *get_hash_keys(GHashTable *hash)
        GList *keys = NULL;
        g_hash_table_foreach(hash, append_key, &keys);
        return keys;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]