diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2016-03-01 22:05:47 +0000 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2016-03-01 22:08:21 +0000 |
commit | 595bb7f5e9d4e784656ab381da8014d8ea1e10c8 (patch) | |
tree | 62f57c2c433dcf84028fcd06373e37c0cf62087b /libgeoclue | |
parent | 47f146d5c2dc217cb97cc0b2bef27211edca63a3 (diff) | |
download | geoclue-595bb7f5e9d4e784656ab381da8014d8ea1e10c8.tar.gz |
lib: Clear the task pointer when unrefing
Don't just unref the task pointer but ensure that the pointer we keep in
private structure is also cleared, using g_clear_object.
Diffstat (limited to 'libgeoclue')
-rw-r--r-- | libgeoclue/gclue-simple.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libgeoclue/gclue-simple.c b/libgeoclue/gclue-simple.c index 0915761..b0c1301 100644 --- a/libgeoclue/gclue-simple.c +++ b/libgeoclue/gclue-simple.c @@ -284,8 +284,10 @@ on_client_started (GObject *source_object, gclue_client_call_start_finish (client, res, &error); if (error != NULL) { + GClueSimple *simple = g_task_get_source_object (task); + g_task_return_error (task, error); - g_object_unref (task); + g_clear_object (&simple->priv->task); } } @@ -302,7 +304,7 @@ on_client_created (GObject *source_object, priv->client = gclue_client_proxy_create_finish (res, &error); if (error != NULL) { g_task_return_error (task, error); - g_object_unref (task); + g_clear_object (&priv->task); return; } |