summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--acinclude.m43
-rw-r--r--src/glib-compat.h8
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