From 0f9a4da84d22dfa34cdec0eb8c687a0da43fd96b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 26 Jun 2004 05:08:36 +0000 Subject: [PATCH] Prevent unwanted recursion by resetting icon_set->cache before freeing the Sat Jun 26 01:04:31 2004 Matthias Clasen * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted recursion by resetting icon_set->cache before freeing the cache. (#144947, Tim Janik) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkiconfactory.c | 11 ++++++----- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 64977af0c3..46cbfe342f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sat Jun 26 01:04:31 2004 Matthias Clasen + + * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted + recursion by resetting icon_set->cache before freeing + the cache. (#144947, Tim Janik) + Sat Jun 26 00:40:02 2004 Matthias Clasen * gtk/gtkiconfactory.c (render_icon_name_pixbuf): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 64977af0c3..46cbfe342f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Sat Jun 26 01:04:31 2004 Matthias Clasen + + * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted + recursion by resetting icon_set->cache before freeing + the cache. (#144947, Tim Janik) + Sat Jun 26 00:40:02 2004 Matthias Clasen * gtk/gtkiconfactory.c (render_icon_name_pixbuf): diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 64977af0c3..46cbfe342f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Sat Jun 26 01:04:31 2004 Matthias Clasen + + * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted + recursion by resetting icon_set->cache before freeing + the cache. (#144947, Tim Janik) + Sat Jun 26 00:40:02 2004 Matthias Clasen * gtk/gtkiconfactory.c (render_icon_name_pixbuf): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 64977af0c3..46cbfe342f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Sat Jun 26 01:04:31 2004 Matthias Clasen + + * gtk/gtkiconfactory.c (clear_cache): Prevent unwanted + recursion by resetting icon_set->cache before freeing + the cache. (#144947, Tim Janik) + Sat Jun 26 00:40:02 2004 Matthias Clasen * gtk/gtkiconfactory.c (render_icon_name_pixbuf): diff --git a/gtk/gtkiconfactory.c b/gtk/gtkiconfactory.c index 52b50e8642..a8dd18bd0e 100644 --- a/gtk/gtkiconfactory.c +++ b/gtk/gtkiconfactory.c @@ -2654,10 +2654,13 @@ static void clear_cache (GtkIconSet *icon_set, gboolean style_detach) { - GSList *tmp_list; + GSList *cache, *tmp_list; GtkStyle *last_style = NULL; - tmp_list = icon_set->cache; + cache = icon_set->cache; + icon_set->cache = NULL; + icon_set->cache_size = 0; + tmp_list = cache; while (tmp_list != NULL) { CachedIcon *icon = tmp_list->data; @@ -2681,9 +2684,7 @@ clear_cache (GtkIconSet *icon_set, tmp_list = g_slist_next (tmp_list); } - g_slist_free (icon_set->cache); - icon_set->cache = NULL; - icon_set->cache_size = 0; + g_slist_free (cache); } static GSList*