From 9d31dc62c63cdad2abb25ecef8753dbc65bd223a Mon Sep 17 00:00:00 2001 From: "evan@chromium.org" Date: Fri, 2 Jul 2010 17:37:03 +0000 Subject: tcmalloc: also hook malloc_usable_size The nvidia opengl driver uses this function. If we don't hook it with tcmalloc, then we mix calls to tcmalloc functions (malloc, free, etc) with the libc ones, causing our WebGL bits to hang. BUG=44590 Review URL: http://codereview.chromium.org/2830035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51539 0039d316-1c4b-4281-b951-d872f2087c98 --- third_party/tcmalloc/chromium/src/tcmalloc.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'third_party/tcmalloc/chromium') diff --git a/third_party/tcmalloc/chromium/src/tcmalloc.cc b/third_party/tcmalloc/chromium/src/tcmalloc.cc index 8bc2253..794af94 100644 --- a/third_party/tcmalloc/chromium/src/tcmalloc.cc +++ b/third_party/tcmalloc/chromium/src/tcmalloc.cc @@ -282,6 +282,7 @@ extern "C" { #ifdef HAVE_STRUCT_MALLINFO struct mallinfo mallinfo(void) __THROW ALIAS("tc_mallinfo"); #endif + size_t malloc_usable_size(void* ptr) __THROW ALIAS("tc_malloc_usable_size"); } // extern "C" #else // #if defined(__GNUC__) && !defined(__MACH__) // Portable wrappers @@ -318,6 +319,9 @@ extern "C" { #ifdef HAVE_STRUCT_MALLINFO struct mallinfo mallinfo(void) __THROW { return tc_mallinfo(); } #endif + size_t malloc_usable_size(void* p) __THROW { + return tc_malloc_usable_size(p); + } } // extern "C" #endif // #if defined(__GNUC__) @@ -1525,6 +1529,10 @@ extern "C" PERFTOOLS_DLL_DECL struct mallinfo tc_mallinfo(void) __THROW { } #endif +extern "C" PERFTOOLS_DLL_DECL size_t tc_malloc_usable_size(void* ptr) __THROW { + return GetSizeWithCallback(ptr, &InvalidGetAllocatedSize); +} + // This function behaves similarly to MSVC's _set_new_mode. // If flag is 0 (default), calls to malloc will behave normally. // If flag is 1, calls to malloc will behave like calls to new, -- cgit v1.1