52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
--- third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:36:46 89799
|
|
+++ third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:37:01 89800
|
|
@@ -150,6 +150,13 @@
|
|
# define WIN32_DO_PATCHING 1
|
|
#endif
|
|
|
|
+// GLibc 2.14+ requires the hook functions be declared volatile, based on the
|
|
+// value of the define __MALLOC_HOOK_VOLATILE. For compatibility with
|
|
+// older/non-GLibc implementations, provide an empty definition.
|
|
+#if !defined(__MALLOC_HOOK_VOLATILE)
|
|
+#define __MALLOC_HOOK_VOLATILE
|
|
+#endif
|
|
+
|
|
using std::max;
|
|
using tcmalloc::PageHeap;
|
|
using tcmalloc::SizeMap;
|
|
@@ -403,7 +410,7 @@
|
|
return tc_malloc(size);
|
|
}
|
|
|
|
-void* (*__malloc_hook)(
|
|
+void* (*__MALLOC_HOOK_VOLATILE __malloc_hook)(
|
|
size_t size, const void* caller) = tc_ptmalloc_malloc_hook;
|
|
|
|
static void* tc_ptmalloc_realloc_hook(
|
|
@@ -411,14 +418,14 @@
|
|
return tc_realloc(ptr, size);
|
|
}
|
|
|
|
-void* (*__realloc_hook)(
|
|
+void* (*__MALLOC_HOOK_VOLATILE __realloc_hook)(
|
|
void* ptr, size_t size, const void* caller) = tc_ptmalloc_realloc_hook;
|
|
|
|
static void tc_ptmalloc_free_hook(void* ptr, const void* caller) {
|
|
tc_free(ptr);
|
|
}
|
|
|
|
-void (*__free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
|
|
+void (*__MALLOC_HOOK_VOLATILE __free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook;
|
|
|
|
#endif
|
|
|
|
@@ -1757,7 +1764,7 @@
|
|
MallocHook::InvokeNewHook(result, size);
|
|
return result;
|
|
}
|
|
-void *(*__memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
|
|
+void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t, size_t, const void *) = MemalignOverride;
|
|
#endif // #ifndef TCMALLOC_FOR_DEBUGALLOCATION
|
|
|
|
// ---Double free() debugging implementation -----------------------------------
|