summaryrefslogtreecommitdiff
path: root/libdleyna
diff options
context:
space:
mode:
Diffstat (limited to 'libdleyna')
-rw-r--r--libdleyna/server/task.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libdleyna/server/task.c b/libdleyna/server/task.c
index a5b03da..9f39929 100644
--- a/libdleyna/server/task.c
+++ b/libdleyna/server/task.c
@@ -696,13 +696,18 @@ void dls_task_complete(dls_task_t *task)
if (task->invocation) {
if (task->result_format) {
if (task->multiple_retvals)
- variant = task->result;
+ variant = g_variant_ref(task->result);
else
- variant = g_variant_new(task->result_format,
- task->result);
+ variant = g_variant_ref_sink(
+ g_variant_new(task->result_format,
+ task->result));
}
+
dls_server_get_connector()->return_response(task->invocation,
variant);
+ if (variant)
+ g_variant_unref(variant);
+
task->invocation = NULL;
}