summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wtaymans@redhat.com>2020-09-09 13:48:01 +0200
committerWim Taymans <wtaymans@redhat.com>2020-09-09 13:48:01 +0200
commitaf646667167e27c901a29d7af863a7038f873451 (patch)
tree278935d8d342e9fb7be17b1aeee1ee6b9c8b1e1d
parenta477e39de2d10941eba3db35050306063c955fbb (diff)
pulse: call operation_done at end of callback
-rw-r--r--pipewire-pulseaudio/src/context.c4
-rw-r--r--pipewire-pulseaudio/src/introspect.c8
-rw-r--r--pipewire-pulseaudio/src/stream.c1
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