]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/idxset.c
idxset: Allow deep copying with pa_idxset_copy()
[pulseaudio] / src / pulsecore / idxset.c
index 3d2dbbeffddd6e38b8fc76e14f540fb8e6baf430..eec73c6ee01e28d4d8f98b43fa5b5b62a1876276 100644 (file)
@@ -458,7 +458,7 @@ bool pa_idxset_isempty(pa_idxset *s) {
     return s->n_entries == 0;
 }
 
-pa_idxset *pa_idxset_copy(pa_idxset *s) {
+pa_idxset *pa_idxset_copy(pa_idxset *s, pa_copy_func_t copy_func) {
     pa_idxset *copy;
     struct idxset_entry *i;
 
@@ -467,7 +467,7 @@ pa_idxset *pa_idxset_copy(pa_idxset *s) {
     copy = pa_idxset_new(s->hash_func, s->compare_func);
 
     for (i = s->iterate_list_head; i; i = i->iterate_next)
-        pa_idxset_put(copy, i->data, NULL);
+        pa_idxset_put(copy, copy_func ? copy_func(i->data) : i->data, NULL);
 
     return copy;
 }