From 03c90584b8ae6e3515e5dd3c98051eaa07b57fd8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 5 Jun 2006 15:02:51 +0000 Subject: [PATCH] Don't leak the dispatch struct. (#321886) 2006-06-05 Matthias Clasen * glib/gmain.c (get_dispatch): Don't leak the dispatch struct. (#321886) --- ChangeLog | 3 +++ ChangeLog.pre-2-12 | 3 +++ glib/gmain.c | 10 ++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f7f1497..dda43a87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-06-05 Matthias Clasen + * glib/gmain.c (get_dispatch): Don't leak the + dispatch struct. (#321886) + * tests/strtod-test.c: Add some tests involving leading whitespace. diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 9f7f1497..dda43a87 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,5 +1,8 @@ 2006-06-05 Matthias Clasen + * glib/gmain.c (get_dispatch): Don't leak the + dispatch struct. (#321886) + * tests/strtod-test.c: Add some tests involving leading whitespace. diff --git a/glib/gmain.c b/glib/gmain.c index 39329a25..4a370bfc 100644 --- a/glib/gmain.c +++ b/glib/gmain.c @@ -107,7 +107,7 @@ typedef struct _GMainDispatch GMainDispatch; struct _GMainDispatch { gint depth; - GSList *source; + GSList *source; /* stack of current sources */ }; struct _GMainContext @@ -1719,6 +1719,12 @@ g_get_current_time (GTimeVal *result) #endif } +static void +g_main_dispatch_free (gpointer dispatch) +{ + g_slice_free (GMainDispatch, dispatch); +} + /* Running the main loop */ static GMainDispatch * @@ -1729,7 +1735,7 @@ get_dispatch (void) if (!dispatch) { dispatch = g_slice_new0 (GMainDispatch); - g_static_private_set (&depth_private, dispatch, NULL); + g_static_private_set (&depth_private, dispatch, g_main_dispatch_free); } return dispatch; -- 2.34.1