Diff between ef3a19375ff1266505fdb03ae39e24c159fba484 and 82ad2b53d24d53b4d0c6b445d572534b3a01b818

Changed Files

File Additions Deletions Status
acinclude.m4 +3 -0 modified
src/glib-compat.h +8 -0 modified

Full Patch

diff --git a/acinclude.m4 b/acinclude.m4
index 57fc5e0..48a59a2 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 d50d5e9..b54d640 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