diff options
author | Wim Taymans <wtaymans@redhat.com> | 2020-09-09 13:48:01 +0200 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2020-09-09 13:48:01 +0200 |
commit | af646667167e27c901a29d7af863a7038f873451 (patch) | |
tree | 278935d8d342e9fb7be17b1aeee1ee6b9c8b1e1d | |
parent | a477e39de2d10941eba3db35050306063c955fbb (diff) |
pulse: call operation_done at end of callback
-rw-r--r-- | pipewire-pulseaudio/src/context.c | 4 | ||||
-rw-r--r-- | pipewire-pulseaudio/src/introspect.c | 8 | ||||
-rw-r--r-- | 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 |