diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-06-17 03:02:34 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-06-17 03:02:34 +0200 |
commit | c6830bd9dc53ee745ac331c4ab1c55134562d114 (patch) | |
tree | 96e09dd2aef85f894e4c65905a7092eb7026450e /src | |
parent | a1d84e39359fed52770f9d15650aabc6bcce6910 (diff) |
hashmap: implement pa_hashmap_last()
Diffstat (limited to 'src')
-rw-r--r-- | src/pulsecore/hashmap.c | 9 | ||||
-rw-r--r-- | src/pulsecore/hashmap.h | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/pulsecore/hashmap.c b/src/pulsecore/hashmap.c index b549cb1c..1fac97eb 100644 --- a/src/pulsecore/hashmap.c +++ b/src/pulsecore/hashmap.c @@ -279,6 +279,15 @@ void* pa_hashmap_first(pa_hashmap *h) { return h->iterate_list_head->value; } +void* pa_hashmap_last(pa_hashmap *h) { + pa_assert(h); + + if (!h->iterate_list_tail) + return NULL; + + return h->iterate_list_tail->value; +} + void* pa_hashmap_steal_first(pa_hashmap *h) { void *data; diff --git a/src/pulsecore/hashmap.h b/src/pulsecore/hashmap.h index f379fe3c..ac2092a6 100644 --- a/src/pulsecore/hashmap.h +++ b/src/pulsecore/hashmap.h @@ -69,6 +69,9 @@ void *pa_hashmap_steal_first(pa_hashmap *h); /* Return the oldest entry in the hashmap */ void* pa_hashmap_first(pa_hashmap *h); +/* Return the newest entry in the hashmap */ +void* pa_hashmap_last(pa_hashmap *h); + /* A macro to ease iteration through all entries */ #define PA_HASHMAP_FOREACH(e, h, state) \ for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), NULL); (e); (e) = pa_hashmap_iterate((h), &(state), NULL)) |