From 82ad2b53d24d53b4d0c6b445d572534b3a01b818 Mon Sep 17 00:00:00 2001 From: Santiago Carot-Nemesio Date: Wed, 25 Jan 2012 14:12:39 +0100 Subject: [PATCH] glib-compat: Add g_list_free_full to deal with issues in old GLib versions --- acinclude.m4 | 3 +++ src/glib-compat.h | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 57fc5e0eb..48a59a2be 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -111,6 +111,9 @@ AC_DEFUN([AC_PATH_GLIB], [ AC_CHECK_LIB(glib-2.0, g_slist_free_full, dummy=yes, AC_DEFINE(NEED_G_SLIST_FREE_FULL, 1, [Define to 1 if you need g_slist_free_full() function.])) + AC_CHECK_LIB(glib-2.0, g_list_free_full, dummy=yes, + AC_DEFINE(NEED_G_LIST_FREE_FULL, 1, + [Define to 1 if you need g_list_free_full() function.])) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) ]) diff --git a/src/glib-compat.h b/src/glib-compat.h index d50d5e934..b54d64052 100644 --- a/src/glib-compat.h +++ b/src/glib-compat.h @@ -28,3 +28,11 @@ static inline void g_slist_free_full(GSList *list, GDestroyNotify free_func) g_slist_free(list); } #endif + +#ifdef NEED_G_LIST_FREE_FULL +static inline void g_list_free_full(GList *list, GDestroyNotify free_func) +{ + g_list_foreach(list, (GFunc) free_func, NULL); + g_list_free(list); +} +#endif -- 2.47.3