Index: base/allocator/allocator_shim.cc |
diff --git a/base/allocator/allocator_shim.cc b/base/allocator/allocator_shim.cc |
index d61a9a47ff573d183ee372e6a01b740c2bebfc59..63639b2c95d7125c04d7d7f8110590f172287b39 100644 |
--- a/base/allocator/allocator_shim.cc |
+++ b/base/allocator/allocator_shim.cc |
@@ -5,6 +5,7 @@ |
#include "base/allocator/allocator_shim.h" |
#include <config.h> |
+#include "base/allocator/allocator_extension_thunks.h" |
#include "base/profiler/alternate_timer.h" |
#include "base/sysinfo.h" |
@@ -229,6 +230,14 @@ extern "C" intptr_t _get_heap_handle() { |
return 0; |
} |
+static void get_stats_thunk(char* buffer, int buffer_length) { |
+ MallocExtension::instance()->GetStats(buffer, buffer_length); |
+} |
+ |
+static void release_free_memory_thunk() { |
+ MallocExtension::instance()->ReleaseFreeMemory(); |
+} |
+ |
// The CRT heap initialization stub. |
extern "C" int _heap_init() { |
#ifdef ENABLE_DYNAMIC_ALLOCATOR_SWITCHING |
@@ -273,6 +282,10 @@ extern "C" int _heap_init() { |
tcmalloc::ThreadCache::GetBytesAllocatedOnCurrentThread); |
} |
+ base::allocator::thunks::SetGetStatsFunction(get_stats_thunk); |
+ base::allocator::thunks::SetReleaseFreeMemoryFunction( |
+ release_free_memory_thunk); |
+ |
return 1; |
} |