summaryrefslogtreecommitdiff
path: root/libdleyna
diff options
context:
space:
mode:
authorRegis Merlino <regis.merlino@intel.com>2013-09-19 10:33:59 +0200
committerRegis Merlino <regis.merlino@intel.com>2013-09-19 10:33:59 +0200
commit4f8911743c2a14266c4c2098b4edce5abe8fcd30 (patch)
treebfbe469e13fa5c96a1bffe27cf4106eaadcf88b5 /libdleyna
parent095e868b987c113927fbaf52e202bf569bc9484e (diff)
downloaddleyna-server-4f8911743c2a14266c4c2098b4edce5abe8fcd30.tar.gz
[Tasks] Fix a memory leak
Fixes https://github.com/01org/dleyna-collabora-android/issues/58 Signed-off-by: Regis Merlino <regis.merlino@intel.com>
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;
}