diff options
author | Regis Merlino <regis.merlino@intel.com> | 2013-09-19 10:33:59 +0200 |
---|---|---|
committer | Regis Merlino <regis.merlino@intel.com> | 2013-09-19 10:33:59 +0200 |
commit | 4f8911743c2a14266c4c2098b4edce5abe8fcd30 (patch) | |
tree | bfbe469e13fa5c96a1bffe27cf4106eaadcf88b5 /libdleyna | |
parent | 095e868b987c113927fbaf52e202bf569bc9484e (diff) | |
download | dleyna-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.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; } |