diff options
-rw-r--r-- | acinclude.m4 | 3 | ||||
-rw-r--r-- | src/glib-compat.h | 8 |
2 files changed, 11 insertions, 0 deletions
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 |