From 6c07faa0131fd1795814f53dd34c18ed41d4ac2a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 20 Feb 2019 14:35:47 +0100 Subject: [PATCH] shared/nm-glib: add our own g_steal_pointer() macro to shadow the one from glib g_steal_pointer() as provided by glib improved significantly. Nowadays it casts the return type via the non-standard typeof() operator. But this useful feature is only enabled with GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_58 which NetworkManager does not set. This macro is hardly rocket science. Always provide our own implementation, that always does the casting (we rely on gcc/clang to support typeof() already at many places). --- shared/nm-utils/nm-glib.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shared/nm-utils/nm-glib.h b/shared/nm-utils/nm-glib.h index b7534edd2a..e941e0673c 100644 --- a/shared/nm-utils/nm-glib.h +++ b/shared/nm-utils/nm-glib.h @@ -424,12 +424,14 @@ g_steal_pointer (gpointer pp) return ref; } - -/* type safety */ -#define g_steal_pointer(pp) \ - (0 ? (*(pp)) : (g_steal_pointer) (pp)) #endif +#ifdef g_steal_pointer +#undef g_steal_pointer +#endif +#define g_steal_pointer(pp) \ + ((typeof (*(pp))) g_steal_pointer (pp)) + /*****************************************************************************/ static inline gboolean