Fix malloc_hook warning on glibc 2.17 and later.
authorRalph Giles <giles@mozilla.com>
Tue, 14 Jan 2014 19:07:37 +0000 (11:07 -0800)
committerRalph Giles <giles@mozilla.com>
Tue, 14 Jan 2014 19:07:37 +0000 (11:07 -0800)
In glib 2.17 the __malloc_ptr define was removed in favour
of using void* directly. Our declaration of mhook using this
type for the second argument therefore rightly generates a warning
on modern systems, since the type is assumed to be an int, which
is too narrow to hold a pointer on 64 bit architectures.

Since it was only ever a define we could use an #ifndef to define
__malloc_ptr ourselves. However we only use it once, so using void*
in the signature directly is cleaner. This should cause no problems
on older systems where it will match either the void* or the char*
(for non __STDC__ code) the define resolved to.

tests/test_opus_api.c

index bafe4e4..9bfa5cc 100644 (file)
@@ -1753,7 +1753,7 @@ int test_repacketizer_api(void)
 #endif
 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 
-typedef void *(*mhook)(size_t __size, __const __malloc_ptr_t);
+typedef void *(*mhook)(size_t __size, __const void *);
 #endif
 
 int test_malloc_fail(void)