[libsoup] socket: Don't leak GTasks



commit 1ad6f7e90eb68522e6be6feee1c7462b24af737d
Author: Christophe Fergeau <cfergeau redhat com>
Date:   Tue Oct 29 17:26:34 2013 +0100

    socket: Don't leak GTasks
    
    GTask needs to be unreffed after calling g_task_return_* when we
    don't use async methods which take ownership of it (as
    g_task_run_in_thread() does).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=711085

 libsoup/soup-socket.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index d4046ec..c101fa5 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -734,6 +734,7 @@ async_connected (GObject *client, GAsyncResult *result, gpointer data)
                g_task_return_boolean (task, TRUE);
        else
                g_task_return_error (task, error);
+       g_object_unref (task);
 }
 
 gboolean
@@ -1233,6 +1234,7 @@ handshake_async_ready (GObject *source, GAsyncResult *result, gpointer user_data
                g_task_return_boolean (task, TRUE);
        else
                g_task_return_error (task, error);
+       g_object_unref (task);
 }
 
 void
@@ -1250,6 +1252,7 @@ soup_socket_handshake_async (SoupSocket          *sock,
 
        if (!soup_socket_setup_ssl (sock, ssl_host, cancellable, &error)) {
                g_task_return_error (task, error);
+               g_object_unref (task);
                return;
        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]