From 6450c64542d3f24fc837263ab7d4cfd20b54e743 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 17 May 2018 17:30:30 +0200 Subject: [PATCH] clean up listeners --- src/modules/module-client-node/client-node.c | 1 + src/modules/spa/module-node-factory.c | 1 + src/modules/spa/spa-node.c | 1 + 3 files changed, 3 insertions(+) diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c index 7398c45a1..2918344ab 100644 --- a/src/modules/module-client-node/client-node.c +++ b/src/modules/module-client-node/client-node.c @@ -1136,6 +1136,7 @@ static void client_node_resource_destroy(void *data) pw_log_debug("client-node %p: destroy", impl); impl->node.resource = this->resource = NULL; + spa_hook_remove(&impl->resource_listener); if (node->data_source.fd != -1) { spa_loop_invoke(node->data_loop, diff --git a/src/modules/spa/module-node-factory.c b/src/modules/spa/module-node-factory.c index 2c76ffbd9..9e2129d9d 100644 --- a/src/modules/spa/module-node-factory.c +++ b/src/modules/spa/module-node-factory.c @@ -52,6 +52,7 @@ static void node_destroy(void *data) { struct node_data *nd = data; spa_list_remove(&nd->link); + spa_hook_remove(&nd->node_listener); } static const struct pw_node_events node_events = { diff --git a/src/modules/spa/spa-node.c b/src/modules/spa/spa-node.c index e21109832..0f1c17b44 100644 --- a/src/modules/spa/spa-node.c +++ b/src/modules/spa/spa-node.c @@ -62,6 +62,7 @@ static void pw_spa_node_destroy(void *data) pw_log_debug("spa-node %p: destroy", node); + spa_hook_remove(&impl->node_listener); if (impl->handle) { spa_handle_clear(impl->handle); free(impl->handle);