[glib] Use g_queue_free_full() convenience function.



commit 0ed2cdb0d926e28188f1ac924c8216dfa9db24a6
Author: Ravi Sankar Guntur <ravi g samsung com>
Date:   Thu Jan 5 10:51:03 2012 +0530

    Use g_queue_free_full() convenience function.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=667331
    
    Signed-off-by: Ravi Sankar Guntur <ravi g samsung com>

 gio/gdbusprivate.c |   12 +++---------
 glib/gmain.c       |   22 +++++++++++-----------
 2 files changed, 14 insertions(+), 20 deletions(-)
---
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index 5b3b77d..3aa71cf 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -465,13 +465,9 @@ _g_dbus_worker_unref (GDBusWorker *worker)
       if (worker->read_fd_list != NULL)
         g_object_unref (worker->read_fd_list);
 
-      g_queue_foreach (worker->received_messages_while_frozen, (GFunc) g_object_unref, NULL);
-      g_queue_free (worker->received_messages_while_frozen);
-
+      g_queue_free_full (worker->received_messages_while_frozen, (GDestroyNotify) g_object_unref);
       g_mutex_clear (&worker->write_lock);
-      g_queue_foreach (worker->write_queue, (GFunc) message_to_write_data_free, NULL);
-      g_queue_free (worker->write_queue);
-
+      g_queue_free_full (worker->write_queue, (GDestroyNotify) message_to_write_data_free);
       g_free (worker->read_buffer);
 
       g_free (worker);
@@ -1411,9 +1407,7 @@ iostream_close_cb (GObject      *source_object,
   g_clear_error (&error);
 
   /* all messages queued for sending are discarded */
-  g_queue_foreach (send_queue, (GFunc) message_to_write_data_free, NULL);
-  g_queue_free (send_queue);
-
+  g_queue_free_full (send_queue, (GDestroyNotify) message_to_write_data_free);
   /* all queued flushes fail */
   error = g_error_new (G_IO_ERROR, G_IO_ERROR_CANCELLED,
                        _("Operation was cancelled"));
diff --git a/glib/gmain.c b/glib/gmain.c
index 60b4404..40bd829 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -594,19 +594,19 @@ g_main_context_default (void)
 }
 
 static void
-free_context_stack (gpointer data)
+free_context (gpointer data)
 {
-  GQueue *stack = data;
-  GMainContext *context;
+  GMainContext *context = data;
 
-  while (!g_queue_is_empty (stack))
-    {
-      context = g_queue_pop_head (stack);
-      g_main_context_release (context);
-      if (context)
-        g_main_context_unref (context);
-    }
-  g_queue_free (stack);
+  g_main_context_release (context);
+  if (context)
+    g_main_context_unref (context);
+}
+
+static void
+free_context_stack (gpointer data)
+{
+  g_queue_free_full((GQueue *) data, (GDestroyNotify) free_context);
 }
 
 static GPrivate thread_context_stack = G_PRIVATE_INIT (free_context_stack);



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