From cd3610367b1611964e96fca0e1fd11e9f71ea97c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 9 Nov 2020 16:52:25 +0100 Subject: [PATCH] pulse-server: free object info Don't remove the listeners before destroying the proxy because we clean up the info in the destroy event. --- src/modules/module-protocol-pulse/manager.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/module-protocol-pulse/manager.c b/src/modules/module-protocol-pulse/manager.c index 1f2c279be..552e71d2f 100644 --- a/src/modules/module-protocol-pulse/manager.c +++ b/src/modules/module-protocol-pulse/manager.c @@ -127,12 +127,8 @@ static void object_destroy(struct object *o) struct manager *m = o->manager; spa_list_remove(&o->this.link); m->this.n_objects--; - if (o->this.proxy) { - if (o->info->events) - spa_hook_remove(&o->object_listener); - spa_hook_remove(&o->proxy_listener); + if (o->this.proxy) pw_proxy_destroy(o->this.proxy); - } if (o->this.props) pw_properties_free(o->this.props); clear_params(&o->this.param_list, SPA_ID_INVALID); @@ -421,6 +417,10 @@ destroy_proxy(void *data) { struct object *o = data; + if (o->info->events) + spa_hook_remove(&o->object_listener); + spa_hook_remove(&o->proxy_listener); + if (o->info && o->info->destroy) o->info->destroy(o);