X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fhtable%2Fhtable.c;fp=ccan%2Fhtable%2Fhtable.c;h=5a773cd8876d2f36b53733c659757213811651ff;hp=59048dc0ada0df95b23583e0dfbba65d3c96768c;hb=7b56762984ce66f38728b542ca347bcb6fe3e981;hpb=d81e79b8dfdfb0da8766c022e767a5b040e5d07b diff --git a/ccan/htable/htable.c b/ccan/htable/htable.c index 59048dc0..5a773cd8 100644 --- a/ccan/htable/htable.c +++ b/ccan/htable/htable.c @@ -135,6 +135,17 @@ void *htable_next(const struct htable *ht, struct htable_iter *i) return NULL; } +void *htable_prev(const struct htable *ht, struct htable_iter *i) +{ + for (;;) { + if (!i->off) + return NULL; + i->off --; + if (entry_is_valid(ht->table[i->off])) + return get_raw_ptr(ht, ht->table[i->off]); + } +} + /* This does not expand the hash table, that's up to caller. */ static void ht_add(struct htable *ht, const void *new, size_t h) {