Bug 1407601 Revert to the previous behavior in MozGrMalloc.h for Linux, and add extern C to correct Solaris build break r?baku draft
authorTom Ritter <tom@mozilla.com>
Wed, 11 Oct 2017 10:16:32 -0500
changeset 685560 b52b036078098e638bcd77f2bf7c9d1f65859b04
parent 678523 f3e939a81ee1169f9501ad96eb43bbf4bf4a1bde
child 737184 ca6c29a797863b4245883c87c070de780aaf5d18
push id85971
push userbmo:tom@mozilla.com
push dateTue, 24 Oct 2017 20:14:19 +0000
reviewersbaku
bugs1407601
milestone58.0a1
Bug 1407601 Revert to the previous behavior in MozGrMalloc.h for Linux, and add extern C to correct Solaris build break r?baku MozReview-Commit-ID: GP6N6pcqQp
gfx/graphite2/src/MozGrMalloc.h
--- a/gfx/graphite2/src/MozGrMalloc.h
+++ b/gfx/graphite2/src/MozGrMalloc.h
@@ -7,24 +7,38 @@
 #define MOZ_GR_MALLOC_H
 
 // Override malloc() and friends to call moz_xmalloc() etc, so that we get
 // predictable, safe OOM crashes rather than relying on the code to handle
 // allocation failures reliably.
 
 #include "mozilla/mozalloc.h"
 
-inline void* malloc(size_t size)
+#if defined(XP_LINUX)
+
+#define malloc moz_xmalloc
+#define calloc moz_xcalloc
+#define realloc moz_xrealloc
+
+#else
+
+// extern "C" is needed for the Solaris build, while the inline
+// functions are needed for the MinGW build. They break gcc 5.4.0
+// on Linux however, so keep the old #define's above for Linux
+
+extern "C" inline void* malloc(size_t size)
 {
     return moz_xmalloc(size);
 }
 
-inline void* calloc(size_t nmemb, size_t size)
+extern "C" inline void* calloc(size_t nmemb, size_t size)
 {
     return moz_xcalloc(nmemb, size);
 }
 
-inline void* realloc(void *ptr, size_t size)
+extern "C" inline void* realloc(void *ptr, size_t size)
 {
     return moz_xrealloc(ptr, size);
 }
 
+#endif // defined(XP_LINUX)
+
 #endif // MOZ_GR_MALLOC_H