mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-13 13:29:58 -05:00
idxset: Add pa_idxset_remove_all()
Slightly nicer than using pa_idxset_steal_first() in a loop.
This commit is contained in:
parent
31ee1a7d54
commit
2c666e3e16
6 changed files with 25 additions and 37 deletions
|
|
@ -142,15 +142,7 @@ static void remove_entry(pa_idxset *s, struct idxset_entry *e) {
|
|||
void pa_idxset_free(pa_idxset *s, pa_free_cb_t free_cb) {
|
||||
pa_assert(s);
|
||||
|
||||
while (s->iterate_list_head) {
|
||||
void *data = s->iterate_list_head->data;
|
||||
|
||||
remove_entry(s, s->iterate_list_head);
|
||||
|
||||
if (free_cb)
|
||||
free_cb(data);
|
||||
}
|
||||
|
||||
pa_idxset_remove_all(s, free_cb);
|
||||
pa_xfree(s);
|
||||
}
|
||||
|
||||
|
|
@ -308,6 +300,19 @@ void* pa_idxset_remove_by_data(pa_idxset*s, const void *data, uint32_t *idx) {
|
|||
return r;
|
||||
}
|
||||
|
||||
void pa_idxset_remove_all(pa_idxset *s, pa_free_cb_t free_cb) {
|
||||
pa_assert(s);
|
||||
|
||||
while (s->iterate_list_head) {
|
||||
void *data = s->iterate_list_head->data;
|
||||
|
||||
remove_entry(s, s->iterate_list_head);
|
||||
|
||||
if (free_cb)
|
||||
free_cb(data);
|
||||
}
|
||||
}
|
||||
|
||||
void* pa_idxset_rrobin(pa_idxset *s, uint32_t *idx) {
|
||||
unsigned hash;
|
||||
struct idxset_entry *e;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue