[NetworkManager-openvpn/lr/gtk-4.0: 10/19] shared/nm-glib: add our own g_steal_pointer() macro to shadow the one from glib




commit b9443d02b3e86c8f2bfc5c224bcd8a12e9c582ea
Author: Thomas Haller <thaller redhat com>
Date:   Wed Feb 20 14:35:47 2019 +0100

    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).
    
    (imported from NetworkManager commit 6c07faa0131fd1795814f53dd34c18ed41d4ac2a)

 shared/nm-utils/nm-glib.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/shared/nm-utils/nm-glib.h b/shared/nm-utils/nm-glib.h
index fd78651..3f2a526 100644
--- a/shared/nm-utils/nm-glib.h
+++ b/shared/nm-utils/nm-glib.h
@@ -431,11 +431,13 @@ g_steal_pointer (gpointer pp)
 
        return ref;
 }
+#endif
 
-/* type safety */
-#define g_steal_pointer(pp) \
-  (0 ? (*(pp)) : (g_steal_pointer) (pp))
+#ifdef g_steal_pointer
+#undef g_steal_pointer
 #endif
+#define g_steal_pointer(pp) \
+       ((typeof (*(pp))) g_steal_pointer (pp))
 
 /*****************************************************************************/
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]