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);