1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/allocator/allocator_extension_thunks.h" 6 7#include <cstddef> // for NULL 8 9namespace base { 10namespace allocator { 11namespace thunks { 12 13// This slightly odd translation unit exists because of the peculularity of how 14// allocator_unittests work on windows. That target has to perform 15// tcmalloc-specific initialization on windows, but it cannot depend on base 16// otherwise. This target sits in the middle - base and allocator_unittests 17// can depend on it. This file can't depend on anything else in base, including 18// logging. 19 20static GetAllocatorWasteSizeFunction g_get_allocator_waste_size_function = NULL; 21static GetStatsFunction g_get_stats_function = NULL; 22static ReleaseFreeMemoryFunction g_release_free_memory_function = NULL; 23 24void SetGetAllocatorWasteSizeFunction( 25 GetAllocatorWasteSizeFunction get_allocator_waste_size_function) { 26 g_get_allocator_waste_size_function = get_allocator_waste_size_function; 27} 28 29GetAllocatorWasteSizeFunction GetGetAllocatorWasteSizeFunction() { 30 return g_get_allocator_waste_size_function; 31} 32 33void SetGetStatsFunction(GetStatsFunction get_stats_function) { 34 g_get_stats_function = get_stats_function; 35} 36 37GetStatsFunction GetGetStatsFunction() { 38 return g_get_stats_function; 39} 40 41void SetReleaseFreeMemoryFunction( 42 ReleaseFreeMemoryFunction release_free_memory_function) { 43 g_release_free_memory_function = release_free_memory_function; 44} 45 46ReleaseFreeMemoryFunction GetReleaseFreeMemoryFunction() { 47 return g_release_free_memory_function; 48} 49 50} // namespace thunks 51} // namespace allocator 52} // namespace base 53