aboutsummaryrefslogtreecommitdiffstats
path: root/wsutil
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2017-02-17 16:19:56 +0100
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2017-02-20 12:55:49 +0000
commite2e4415c9fefbe3c8b840c3207c8e1197e9b385e (patch)
tree19171e1087ef9e95dfc2947fa8f0990ca06efee3 /wsutil
parent6c654861d94869e32536c19c5001666c1faf96c7 (diff)
Add some glib functions not available in older glibs
Change-Id: I6526d799447a3b6c0b9bb42f8d0f8c3415299ed0 Reviewed-on: https://code.wireshark.org/review/20158 Reviewed-by: Anders Broman <a.broman58@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'wsutil')
-rw-r--r--wsutil/CMakeLists.txt1
-rw-r--r--wsutil/Makefile.am2
-rw-r--r--wsutil/glib-compat.c77
-rw-r--r--wsutil/glib-compat.h32
4 files changed, 112 insertions, 0 deletions
diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt
index 84a3e1465e..8e0125b0fa 100644
--- a/wsutil/CMakeLists.txt
+++ b/wsutil/CMakeLists.txt
@@ -46,6 +46,7 @@ set(WSUTIL_COMMON_FILES
filesystem.c
frequency-utils.c
g711.c
+ glib-compat.c
inet_addr.c
interface.c
jsmn.c
diff --git a/wsutil/Makefile.am b/wsutil/Makefile.am
index 76b968b66b..eba80f941a 100644
--- a/wsutil/Makefile.am
+++ b/wsutil/Makefile.am
@@ -64,6 +64,7 @@ libwsutil_nonrepl_INCLUDES = \
filesystem.h \
frequency-utils.h \
g711.h \
+ glib-compat.h \
inet_addr.h \
inet_ipv6.h \
interface.h \
@@ -142,6 +143,7 @@ libwsutil_la_SOURCES = \
filesystem.c \
frequency-utils.c \
g711.c \
+ glib-compat.c \
inet_addr.c \
interface.c \
jsmn.c \
diff --git a/wsutil/glib-compat.c b/wsutil/glib-compat.c
new file mode 100644
index 0000000000..5d3cec8374
--- /dev/null
+++ b/wsutil/glib-compat.c
@@ -0,0 +1,77 @@
+/*
+* Provide some functions that are not present in older
+* GLIB versions (down to 2.22)
+*
+* Wireshark - Network traffic analyzer
+* By Gerald Combs <gerald@wireshark.org>
+* Copyright 1998 Gerald Combs
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+#include "config.h"
+
+#include <glib.h>
+
+#include "glib-compat.h"
+#if !GLIB_CHECK_VERSION(2, 28, 0)
+/**
+* g_slist_free_full:
+* @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.
+*
+* Since: 2.28
+**/
+void
+g_slist_free_full(GSList *list,
+ GDestroyNotify free_func)
+{
+ g_slist_foreach(list, (GFunc)free_func, NULL);
+ g_slist_free(list);
+}
+
+/**
+* g_list_free_full:
+* @list: a pointer to a #GList
+* @free_func: the function to be called to free each element's data
+*
+* Convenience method, which frees all the memory used by a #GList,
+* and calls @free_func on every element's data.
+*
+* Since: 2.28
+*/
+void
+g_list_free_full(GList *list,
+ GDestroyNotify free_func)
+{
+ g_list_foreach(list, (GFunc)free_func, NULL);
+ g_list_free(list);
+}
+
+#endif
+/*
+* Editor modelines - http://www.wireshark.org/tools/modelines.html
+*
+* Local variables:
+* c-basic-offset: 4
+* tab-width: 8
+* indent-tabs-mode: nil
+* End:
+*
+* vi: set shiftwidth=4 tabstop=8 expandtab:
+* :indentSize=4:tabSize=8:noTabs=true:
+*/
diff --git a/wsutil/glib-compat.h b/wsutil/glib-compat.h
new file mode 100644
index 0000000000..378a020b0d
--- /dev/null
+++ b/wsutil/glib-compat.h
@@ -0,0 +1,32 @@
+/* glib-compat.h
+* Definitions to provide some functions that are not present in older
+* GLIB versions (down to 2.22)
+*
+* Wireshark - Network traffic analyzer
+* By Gerald Combs <gerald@wireshark.org>
+* Copyright 1998 Gerald Combs
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+#ifndef GLIB_COMPAT_H
+#define GLIB_COMPAT_H
+
+#include "ws_symbol_export.h"
+#if !GLIB_CHECK_VERSION(2, 28, 0)
+WS_DLL_PUBLIC void g_slist_free_full(GSList *list, GDestroyNotify free_func);
+WS_DLL_PUBLIC void g_list_free_full(GList *list, GDestroyNotify free_func);
+#endif
+
+#endif /* GLIB_COMPAT_H */