diff options
author | Ravi Sankar Guntur <ravi.g@samsung.com> | 2012-01-05 10:51:03 +0530 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2012-01-09 19:27:39 -0500 |
commit | 0ed2cdb0d926e28188f1ac924c8216dfa9db24a6 (patch) | |
tree | 6e78557dace44e3f255477231f5f6aeadbc17826 | |
parent | a76d85de50285c7f376acefd14e66764afc1321a (diff) | |
download | glib-0ed2cdb0d926e28188f1ac924c8216dfa9db24a6.tar.gz |
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>
-rw-r--r-- | gio/gdbusprivate.c | 12 | ||||
-rw-r--r-- | glib/gmain.c | 22 |
2 files changed, 14 insertions, 20 deletions
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c index 5b3b77de3..3aa71cf16 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 60b440416..40bd82947 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); |