From 8c67b221f9319cd2a745c949f48fda10b11bdfb4 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Wed, 12 Feb 2025 17:28:55 +0100 Subject: [PATCH] Store the registry as a struct pw_registry instead of a pw_proxy This is a better fix for #1611 and an improvement over #1624 as requested by @swick. --- src/pipewire.c | 11 ++++++----- src/pipewire.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/pipewire.c b/src/pipewire.c index 39b05c71c..7b8d10411 100644 --- a/src/pipewire.c +++ b/src/pipewire.c @@ -224,7 +224,8 @@ pipewire_remote_destroy (PipeWireRemote *remote) /* This check is a workaround for older PW versions */ if (remote->registry) spa_hook_remove (&remote->registry_listener); - g_clear_pointer (&remote->registry, pw_proxy_destroy); + pw_proxy_destroy((struct pw_proxy *)remote->registry); + remote->registry = NULL; g_clear_pointer (&remote->globals, g_hash_table_destroy); if (remote->core) spa_hook_remove (&remote->core_listener); @@ -328,10 +329,10 @@ pipewire_remote_new_sync (struct pw_properties *pipewire_properties, &core_events, remote); - remote->registry = (struct pw_proxy*) pw_core_get_registry (remote->core, - PW_VERSION_REGISTRY, - 0); - pw_registry_add_listener ((struct pw_registry*)remote->registry, + remote->registry = pw_core_get_registry (remote->core, + PW_VERSION_REGISTRY, + 0); + pw_registry_add_listener (remote->registry, &remote->registry_listener, ®istry_events, remote); diff --git a/src/pipewire.h b/src/pipewire.h index f8614493e..354f8a119 100644 --- a/src/pipewire.h +++ b/src/pipewire.h @@ -53,7 +53,7 @@ struct _PipeWireRemote int sync_seq; - struct pw_proxy *registry; + struct pw_registry *registry; struct spa_hook registry_listener; GHashTable *globals;