[libsoup] soup-misc: add a GDestroyNotify to soup_add_completion_reffed()



commit 8005ba442930b0b38d61d97496d8b52a886f18bc
Author: Dan Winship <danw gnome org>
Date:   Thu Jul 14 16:54:27 2016 -0400

    soup-misc: add a GDestroyNotify to soup_add_completion_reffed()
    
    https://bugzilla.gnome.org/show_bug.cgi?id=768567

 libsoup/soup-message-io.c   |    2 +-
 libsoup/soup-misc-private.h |    7 ++++---
 libsoup/soup-misc.c         |   11 ++++++-----
 libsoup/soup-session.c      |    2 +-
 4 files changed, 12 insertions(+), 10 deletions(-)
---
diff --git a/libsoup/soup-message-io.c b/libsoup/soup-message-io.c
index f7ae436..a0a052b 100644
--- a/libsoup/soup-message-io.c
+++ b/libsoup/soup-message-io.c
@@ -1317,7 +1317,7 @@ soup_message_io_unpause (SoupMessage *msg)
 
        if (!io->unpause_source) {
                io->unpause_source = soup_add_completion_reffed (io->async_context,
-                                                                io_unpause_internal, msg);
+                                                                io_unpause_internal, msg, NULL);
        }
 }
 
diff --git a/libsoup/soup-misc-private.h b/libsoup/soup-misc-private.h
index be62e39..7fe31a1 100644
--- a/libsoup/soup-misc-private.h
+++ b/libsoup/soup-misc-private.h
@@ -30,9 +30,10 @@ gboolean soup_uri_is_https (SoupURI *uri, char **aliases);
                                           method == SOUP_METHOD_PUT || \
                                           method == SOUP_METHOD_DELETE)
 
-GSource *soup_add_completion_reffed (GMainContext *async_context,
-                                    GSourceFunc   function,
-                                    gpointer      data);
+GSource *soup_add_completion_reffed (GMainContext   *async_context,
+                                    GSourceFunc     function,
+                                    gpointer        data,
+                                    GDestroyNotify  dnotify);
 
 guint soup_message_headers_get_ranges_internal (SoupMessageHeaders  *hdrs,
                                                goffset              total_length,
diff --git a/libsoup/soup-misc.c b/libsoup/soup-misc.c
index 92dbdb5..c583d90 100644
--- a/libsoup/soup-misc.c
+++ b/libsoup/soup-misc.c
@@ -118,14 +118,15 @@ soup_add_idle (GMainContext *async_context,
 }
 
 GSource *
-soup_add_completion_reffed (GMainContext *async_context,
-                           GSourceFunc   function,
-                           gpointer      data)
+soup_add_completion_reffed (GMainContext   *async_context,
+                           GSourceFunc     function,
+                           gpointer        data,
+                           GDestroyNotify  dnotify)
 {
        GSource *source = g_idle_source_new ();
 
        g_source_set_priority (source, G_PRIORITY_DEFAULT);
-       g_source_set_callback (source, function, data, NULL);
+       g_source_set_callback (source, function, data, dnotify);
        g_source_attach (source, async_context);
        return source;
 }
@@ -152,7 +153,7 @@ soup_add_completion (GMainContext *async_context,
 {
        GSource *source;
 
-       source = soup_add_completion_reffed (async_context, function, data);
+       source = soup_add_completion_reffed (async_context, function, data, NULL);
        g_source_unref (source);
        return source;
 }
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 9a7b457..841f863 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -2321,7 +2321,7 @@ soup_session_real_kick_queue (SoupSession *session)
                        source = g_main_context_find_source_by_user_data (item->async_context, priv);
                        if (!source) {
                                source = soup_add_completion_reffed (item->async_context,
-                                                                    idle_run_queue, priv);
+                                                                    idle_run_queue, priv, NULL);
                                priv->run_queue_sources = g_slist_prepend (priv->run_queue_sources,
                                                                           source);
                        }


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