Commit d5742550 authored by Simon McVittie's avatar Simon McVittie

Add a simplified backport of g_steal_pointer()

This will be used in tests later in the branch.

Sadly we can't use GLIB_VERSION_2_44 unless we are willing to have a
hard dependency on GLib 2.44, which would force us to do all our
Travis-CI builds in Docker containers rather than in ye olde base
system, and that adds 50% to the time taken to do builds.
Reviewed-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>
[smcv: Rebase onto 1.13.x branch, fix minor conflicts]
Signed-off-by: Simon McVittie's avatarSimon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101354
parent 83b439f7
...@@ -262,7 +262,7 @@ dnl Don't do anything too subtle here, because the CMake build system ...@@ -262,7 +262,7 @@ dnl Don't do anything too subtle here, because the CMake build system
dnl parses these lines with regular expressions. If necessary, adjust dnl parses these lines with regular expressions. If necessary, adjust
dnl cmake/modules/MacrosAutotools.cmake to compensate. dnl cmake/modules/MacrosAutotools.cmake to compensate.
AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_40], [Ignore post-2.40 deprecations]) AC_DEFINE([GLIB_VERSION_MIN_REQUIRED], [GLIB_VERSION_2_40], [Ignore post-2.40 deprecations])
AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [GLIB_VERSION_2_40], [Prevent post-2.40 APIs]) AC_DEFINE([GLIB_VERSION_MAX_ALLOWED], [G_ENCODE_VERSION(2,44)], [Prevent post-2.44 APIs])
with_glib=yes with_glib=yes
......
...@@ -91,4 +91,19 @@ void test_mkdir (const gchar *path, gint mode); ...@@ -91,4 +91,19 @@ void test_mkdir (const gchar *path, gint mode);
void test_timeout_reset (void); void test_timeout_reset (void);
#if !GLIB_CHECK_VERSION(2, 44, 0)
#define g_steal_pointer(x) backported_g_steal_pointer (x)
/* A simplified version of g_steal_pointer without type-safety. */
static inline gpointer
backported_g_steal_pointer (gpointer pointer_to_pointer)
{
gpointer *pp = pointer_to_pointer;
gpointer ret;
ret = *pp;
*pp = NULL;
return ret;
}
#endif
#endif #endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment