From 0430e7b8dc8596d602993145f242269944f36678 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 10 Jul 2020 12:46:48 +0200 Subject: [PATCH] client-node: clean up our memory mappings Loop over our memory mappings and clean them up when we are destroyed. --- src/modules/module-client-node/client-node.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c index c39cee9b2..3c77df0aa 100644 --- a/src/modules/module-client-node/client-node.c +++ b/src/modules/module-client-node/client-node.c @@ -1324,6 +1324,8 @@ static void node_free(void *data) struct pw_impl_client_node *this = &impl->this; struct node *node = &impl->node; struct spa_system *data_system = node->data_system; + uint32_t tag[5] = { impl->node_id, }; + struct pw_memmap *mm; this->node = NULL; @@ -1332,6 +1334,9 @@ static void node_free(void *data) spa_hook_remove(&impl->node_listener); + while ((mm = pw_mempool_find_tag(impl->context->pool, tag, sizeof(uint32_t))) != NULL) + pw_memmap_free(mm); + if (this->resource) pw_resource_destroy(this->resource);