diff options
Diffstat (limited to 'src/source.c')
-rw-r--r-- | src/source.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/source.c b/src/source.c index 2f34c461..98df2447 100644 --- a/src/source.c +++ b/src/source.c @@ -34,10 +34,16 @@ static void do_free(void *p, void *userdata) { }; void source_free(struct source *s) { + struct output_stream *o; assert(s); + while ((o = idxset_rrobin(s->output_streams, NULL))) + output_stream_free(o); + idxset_free(s->output_streams, NULL, NULL); + idxset_remove_by_data(s->core->sources, s, NULL); idxset_free(s->output_streams, do_free, NULL); + free(s->name); free(s); } |