From 990889e6232ff3787f1d42d4091a0478ffb93988 Mon Sep 17 00:00:00 2001 From: "chappedm@gmail.com" Date: Sat, 22 Dec 2012 18:53:18 +0000 Subject: [PATCH] issue-470: Allows the default system allocator to be overidden This is useful when you run into cases where you need an allocator before tcmalloc has been fully initialized. git-svn-id: http://gperftools.googlecode.com/svn/trunk@186 6b5cf1ce-ec42-a296-1ba9-69fdba395a50 --- src/system-alloc.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/system-alloc.cc b/src/system-alloc.cc index e380d16..b6a87dd 100644 --- a/src/system-alloc.cc +++ b/src/system-alloc.cc @@ -449,6 +449,12 @@ void* DefaultSysAllocator::Alloc(size_t size, size_t *actual_size, return NULL; } +ATTRIBUTE_WEAK ATTRIBUTE_NOINLINE +SysAllocator *tc_get_sysalloc_override(SysAllocator *def) +{ + return def; +} + static bool system_alloc_inited = false; void InitSystemAllocators(void) { MmapSysAllocator *mmap = new (mmap_space) MmapSysAllocator(); @@ -469,7 +475,8 @@ void InitSystemAllocators(void) { sdef->SetChildAllocator(sbrk, 0, sbrk_name); sdef->SetChildAllocator(mmap, 1, mmap_name); } - sys_alloc = sdef; + + sys_alloc = tc_get_sysalloc_override(sdef); } void* TCMalloc_SystemAlloc(size_t size, size_t *actual_size,