From 468cbb8892ba4b22e03ce05c71d87191ea2781a9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 10 Dec 2019 12:27:12 +0100 Subject: [PATCH] core-proxy: improve cleanup Don't disconnect and destroy on errors, let the app do that. Don't try to use a destroyed core-proxy. --- src/modules/module-protocol-native.c | 1 - src/pipewire/proxy.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/module-protocol-native.c b/src/modules/module-protocol-native.c index 09fbf2a27..897c95a25 100644 --- a/src/modules/module-protocol-native.c +++ b/src/modules/module-protocol-native.c @@ -686,7 +686,6 @@ error: this->recv_seq, res, "connection error"); pw_loop_destroy_source(loop, impl->source); impl->source = NULL; - pw_core_proxy_disconnect(this); } diff --git a/src/pipewire/proxy.c b/src/pipewire/proxy.c index 3601bfc64..449b28ec7 100644 --- a/src/pipewire/proxy.c +++ b/src/pipewire/proxy.c @@ -222,7 +222,7 @@ void pw_proxy_destroy(struct pw_proxy *proxy) if (!proxy->removed) { /* if the server did not remove this proxy, remove ourselves * from the proxy objects and schedule a destroy. */ - if (proxy->core_proxy) { + if (proxy->core_proxy && !proxy->core_proxy->destroyed) { proxy->zombie = true; pw_core_proxy_destroy(proxy->core_proxy, proxy); } else {