remove hooks from objects

Remove the hooks we installed on objects in the destroy/free event
or before calling _destroy. This is not really needed but it is
a nice thing to do because it calls the hook removed callbacks.
This commit is contained in:
Wim Taymans 2020-11-06 15:53:32 +01:00
parent 6317bc4deb
commit 1570e62635
19 changed files with 109 additions and 27 deletions

View file

@ -127,8 +127,12 @@ 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->this.proxy) {
if (o->info->events)
spa_hook_remove(&o->object_listener);
spa_hook_remove(&o->proxy_listener);
pw_proxy_destroy(o->this.proxy);
}
free(o->this.type);
if (o->this.props)
pw_properties_free(o->this.props);