From d15f8682c006c8f5c3d4a93db0f211f687fb656e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 27 Jul 2011 23:27:24 -0400 Subject: [PATCH] Revert "Optimize g_[s]list_free_full a bit" This reverts commit 98b667d052b1274f80b8898a32d0753e9e2e5c1a. The commit was not actually an optimization, since g_list_free is pretty smart. --- glib/glist.c | 11 +++-------- glib/gslist.c | 17 ++++++----------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/glib/glist.c b/glib/glist.c index 7f5df44..1e3dd86 100644 --- a/glib/glist.c +++ b/glib/glist.c @@ -212,15 +212,10 @@ g_list_free_1 (GList *list) */ void g_list_free_full (GList *list, - GDestroyNotify free_func) + GDestroyNotify free_func) { - while (list) - { - GList *next = list->next; - (*free_func) (list->data); - _g_list_free1 (list); - list = next; - } + g_list_foreach (list, (GFunc) free_func, NULL); + g_list_free (list); } /** diff --git a/glib/gslist.c b/glib/gslist.c index 96ba579..1de9c57 100644 --- a/glib/gslist.c +++ b/glib/gslist.c @@ -197,22 +197,17 @@ g_slist_free_1 (GSList *list) * @list: a pointer to a #GSList * @free_func: the function to be called to free each element's data * - * Convenience method, which frees all the memory used by a #GSList, - * and calls the specified destroy function on every element's data. + * Convenience method, which frees all the memory used by a #GSList, and + * calls the specified destroy function on every element's data. * * Since: 2.28 - */ + **/ void g_slist_free_full (GSList *list, - GDestroyNotify free_func) + GDestroyNotify free_func) { - while (list) - { - GSList *next = list->next; - (*free_func) (list->data); - _g_slist_free1 (list); - list = next; - } + g_slist_foreach (list, (GFunc) free_func, NULL); + g_slist_free (list); } /** -- 2.7.4