[glib] gmain: free source_lists when freeing GMainContext
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gmain: free source_lists when freeing GMainContext
- Date: Mon, 27 Aug 2012 11:25:22 +0000 (UTC)
commit 48a9887eae1058b055994c832b26a8ab9876db57
Author: Dan Winship <danw gnome org>
Date: Thu Aug 23 12:33:43 2012 -0400
gmain: free source_lists when freeing GMainContext
If a context was freed with sources still attached, those sources
correctly got destroyed, but the corresponding GSourceList structs
were being leaked.
https://bugzilla.gnome.org/show_bug.cgi?id=682560
glib/gmain.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/glib/gmain.c b/glib/gmain.c
index 603dd3f..4274269 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -499,6 +499,8 @@ g_main_context_unref (GMainContext *context)
{
GSourceIter iter;
GSource *source;
+ GList *sl_iter;
+ GSourceList *list;
g_return_if_fail (context != NULL);
g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0);
@@ -516,6 +518,12 @@ g_main_context_unref (GMainContext *context)
source->context = NULL;
g_source_destroy_internal (source, context, FALSE);
}
+ for (sl_iter = context->source_lists; sl_iter; sl_iter = sl_iter->next)
+ {
+ list = sl_iter->data;
+ g_slice_free (GSourceList, list);
+ }
+ g_list_free (context->source_lists);
g_mutex_clear (&context->mutex);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]