g_steal_pointer: make it C++ clean
authorRyan Lortie <desrt@desrt.ca>
Fri, 6 Feb 2015 16:00:01 +0000 (17:00 +0100)
committerRyan Lortie <desrt@desrt.ca>
Fri, 6 Feb 2015 16:01:56 +0000 (17:01 +0100)
We have a test that #includes our headers from a C++ program to make
sure we don't throw any errors or warnings as a result of that.

The new inline implementation of g_steal_pointer() does an implicit
conversion from (void *), which is not valid in C++.

Add a cast to avoid the problem.

Thanks to Ignacio Casal Quinteiro for the report.

glib/gmem.h

index 82507b5..8358f86 100644 (file)
@@ -183,7 +183,7 @@ gpointer g_try_realloc_n  (gpointer  mem,
 static inline gpointer
 (g_steal_pointer) (gpointer pp)
 {
-  gpointer *ptr = pp;
+  gpointer *ptr = (gpointer *) pp;
   gpointer ref;
 
   ref = *ptr;