tools: remove registry listener before destroying

Otherwise we access freed memory when we try to remove
the listener later.
This commit is contained in:
Wim Taymans 2021-02-24 14:58:20 +01:00
parent 72acd752f6
commit 27f85d1f52

View file

@ -437,7 +437,6 @@ static void on_core_destroy(void *_data)
spa_list_remove(&rd->link); spa_list_remove(&rd->link);
spa_hook_remove(&rd->core_listener); spa_hook_remove(&rd->core_listener);
spa_hook_remove(&rd->registry_listener);
spa_hook_remove(&rd->proxy_core_listener); spa_hook_remove(&rd->proxy_core_listener);
pw_map_remove(&data->vars, rd->id); pw_map_remove(&data->vars, rd->id);
@ -456,6 +455,7 @@ static const struct pw_proxy_events proxy_core_events = {
static void remote_data_free(struct remote_data *rd) static void remote_data_free(struct remote_data *rd)
{ {
spa_hook_remove(&rd->registry_listener);
pw_proxy_destroy((struct pw_proxy*)rd->registry); pw_proxy_destroy((struct pw_proxy*)rd->registry);
pw_core_disconnect(rd->core); pw_core_disconnect(rd->core);
} }