filter: free ports as well

This commit is contained in:
Wim Taymans 2020-06-03 12:05:00 +02:00
parent b4b7ba4cbb
commit 913ad43432

View file

@ -1078,6 +1078,7 @@ SPA_EXPORT
void pw_filter_destroy(struct pw_filter *filter) void pw_filter_destroy(struct pw_filter *filter)
{ {
struct filter *impl = SPA_CONTAINER_OF(filter, struct filter, this); struct filter *impl = SPA_CONTAINER_OF(filter, struct filter, this);
struct port *p;
pw_log_debug(NAME" %p: destroy", filter); pw_log_debug(NAME" %p: destroy", filter);
@ -1085,6 +1086,9 @@ void pw_filter_destroy(struct pw_filter *filter)
pw_filter_disconnect(filter); pw_filter_disconnect(filter);
spa_list_consume(p, &impl->port_list, link)
pw_filter_remove_port(p->user_data);
if (filter->core) { if (filter->core) {
spa_hook_remove(&filter->core_listener); spa_hook_remove(&filter->core_listener);
spa_list_remove(&filter->link); spa_list_remove(&filter->link);