diff options
Diffstat (limited to 'libdleyna')
-rw-r--r-- | libdleyna/server/task.c | 11 |
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; } |