aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pipewire_audio.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2026-08-02 00:04:45 +0200
committerdec05eba <dec05eba@protonmail.com>2026-08-02 00:04:45 +0200
commit06be2c8a12cd021083670d304a72f93907c8b22e (patch)
tree53b69ef77c54ac46e269acb26a51b5f582cc8803 /src/pipewire_audio.c
parent68d5c511d105650c9d0a5e920f77b0f19fabbfe0 (diff)
Add resource cleanup on all paths
The recorder, screenshot and cli now free everything they create, also when setup fails. Adds gsr_windowing_deinit, implements the missing gsr_window_destroy and destroys the pipewire registry proxy.
Diffstat (limited to 'src/pipewire_audio.c')
-rw-r--r--src/pipewire_audio.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/pipewire_audio.c b/src/pipewire_audio.c
index 73192a9..8f40695 100644
--- a/src/pipewire_audio.c
+++ b/src/pipewire_audio.c
@@ -797,6 +797,11 @@ void gsr_pipewire_audio_deinit(gsr_pipewire_audio *self) {
spa_hook_remove(&self->registry_listener);
spa_hook_remove(&self->core_listener);
+ if(self->registry) {
+ pw_proxy_destroy((struct pw_proxy*)self->registry);
+ self->registry = NULL;
+ }
+
if(self->core) {
pw_core_disconnect(self->core);
self->core = NULL;