diff options
author | Frediano Ziglio <fziglio@redhat.com> | 2016-10-15 14:08:44 +0100 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2016-10-18 09:52:28 +0100 |
commit | 5feb1d03797a5692e218853b0b3941cb6ba0ae11 (patch) | |
tree | 11e6a921e7d60cfb23a8c5f6c9df7bc42c3bc64f | |
parent | 4121547ba87b89ec4916cbda60f764ce50de5048 (diff) |
Use a compatibility header to support GLib 2.28
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
-rw-r--r-- | server/Makefile.am | 1 | ||||
-rw-r--r-- | server/char-device.c | 1 | ||||
-rw-r--r-- | server/glib-compat.h | 47 | ||||
-rw-r--r-- | server/red-channel-client.c | 1 |
4 files changed, 50 insertions, 0 deletions
diff --git a/server/Makefile.am b/server/Makefile.am index 036abcdb..dff1ad2b 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -162,6 +162,7 @@ libserver_la_SOURCES = \ dcc-private.h \ image-encoders.c \ image-encoders.h \ + glib-compat.h \ $(spice_built_sources) \ $(NULL) diff --git a/server/char-device.c b/server/char-device.c index 4f01d3ca..7775c071 100644 --- a/server/char-device.c +++ b/server/char-device.c @@ -25,6 +25,7 @@ #include "char-device.h" #include "red-channel.h" #include "reds.h" +#include "glib-compat.h" #define CHAR_DEVICE_WRITE_TO_TIMEOUT 100 #define RED_CHAR_DEVICE_WAIT_TOKENS_TIMEOUT 30000 diff --git a/server/glib-compat.h b/server/glib-compat.h new file mode 100644 index 00000000..a20a4342 --- /dev/null +++ b/server/glib-compat.h @@ -0,0 +1,47 @@ +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* + Copyright (C) 2016 Red Hat, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see <http://www.gnu.org/licenses/>. +*/ +#ifndef GLIB_COMPAT_H_ +#define GLIB_COMPAT_H_ + +#include <glib.h> + +#if !GLIB_CHECK_VERSION(2,32,0) +static inline void +g_queue_free_full(GQueue *queue, GDestroyNotify free_func) +{ + /* quite hack cast but work with standard C call convention */ + g_queue_foreach(queue, (GFunc) free_func, NULL); + g_queue_clear(queue); +} +#endif + +#if !GLIB_CHECK_VERSION(2,30,0) +static inline gboolean +g_queue_remove_boolean(GQueue *queue, gconstpointer data) +{ + GList *link = g_queue_find(queue, data); + if (!link) { + return FALSE; + } + g_queue_unlink(queue, link); + return TRUE; +} +#define g_queue_remove g_queue_remove_boolean +#endif + +#endif /* GLIB_COMPAT_H_ */ diff --git a/server/red-channel-client.c b/server/red-channel-client.c index 36d9c331..9426b137 100644 --- a/server/red-channel-client.c +++ b/server/red-channel-client.c @@ -36,6 +36,7 @@ #include "red-channel-client.h" #include "red-channel-client-private.h" #include "red-channel.h" +#include "glib-compat.h" static const SpiceDataHeaderOpaque full_header_wrapper; static const SpiceDataHeaderOpaque mini_header_wrapper; |