From af646667167e27c901a29d7af863a7038f873451 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 9 Sep 2020 13:48:01 +0200 Subject: pulse: call operation_done at end of callback --- pipewire-pulseaudio/src/context.c | 4 ++-- pipewire-pulseaudio/src/introspect.c | 8 ++++---- pipewire-pulseaudio/src/stream.c | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pipewire-pulseaudio/src/context.c b/pipewire-pulseaudio/src/context.c index 32e16d67..be2e8aee 100644 --- a/pipewire-pulseaudio/src/context.c +++ b/pipewire-pulseaudio/src/context.c @@ -1715,9 +1715,9 @@ static void on_notify(pa_operation *o, void *userdata) { struct notify_data *d = userdata; pa_context *c = o->context; - pa_operation_done(o); if (d->cb) d->cb(c, d->userdata); + pa_operation_done(o); } SPA_EXPORT @@ -1787,8 +1787,8 @@ static void do_default_node(pa_operation *o, void *userdata) pa_context_set_error(c, error); if (d->cb) d->cb(c, error != 0 ? 0 : 1, d->userdata); - pa_operation_done(o); pa_xfree(d->name); + pa_operation_done(o); } SPA_EXPORT diff --git a/pipewire-pulseaudio/src/introspect.c b/pipewire-pulseaudio/src/introspect.c index 6353824b..910cbeaf 100644 --- a/pipewire-pulseaudio/src/introspect.c +++ b/pipewire-pulseaudio/src/introspect.c @@ -736,8 +736,8 @@ static void do_device_route(pa_operation *o, void *userdata) pa_context_set_error(c, error); if (d->cb) d->cb(c, error != 0 ? 0 : 1, d->userdata); - pa_operation_done(o); pa_xfree(d->port); + pa_operation_done(o); } SPA_EXPORT @@ -1437,11 +1437,11 @@ static void on_load_module(pa_operation *o, void *userdata) pa_context_set_error(c, d->error); if (d->cb) d->cb(c, d->idx, d->userdata); - pa_operation_done(o); if (d->props) pw_properties_free(d->props); if (d->proxy) spa_hook_remove(&d->listener); + pa_operation_done(o); } static void module_proxy_removed(void *data) @@ -1945,8 +1945,8 @@ done: pa_context_set_error(c, error); if (d->success_cb) d->success_cb(c, error ? 0 : 1, d->userdata); - pa_operation_done(o); free(d->profile); + pa_operation_done(o); } SPA_EXPORT @@ -2237,8 +2237,8 @@ done: pa_context_set_error(c, error); if (d->cb) d->cb(c, error != 0 ? 0 : 1, d->userdata); - pa_operation_done(o); pa_xfree(d->target_name); + pa_operation_done(o); } SPA_EXPORT diff --git a/pipewire-pulseaudio/src/stream.c b/pipewire-pulseaudio/src/stream.c index bd24b753..e7b65988 100644 --- a/pipewire-pulseaudio/src/stream.c +++ b/pipewire-pulseaudio/src/stream.c @@ -1027,6 +1027,7 @@ static void on_disconnected(pa_operation *o, void *userdata) pa_stream *s = o->stream; pw_log_debug("stream %p", s); pa_stream_set_state(s, PA_STREAM_TERMINATED); + pa_operation_done(o); } SPA_EXPORT -- cgit v1.2.3