Home | History | Annotate | Download | only in allocator
      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 
      9 namespace base {
     10 namespace allocator {
     11 namespace 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 
     20 static GetAllocatorWasteSizeFunction g_get_allocator_waste_size_function = NULL;
     21 static GetStatsFunction g_get_stats_function = NULL;
     22 static ReleaseFreeMemoryFunction g_release_free_memory_function = NULL;
     23 
     24 void SetGetAllocatorWasteSizeFunction(
     25     GetAllocatorWasteSizeFunction get_allocator_waste_size_function) {
     26   g_get_allocator_waste_size_function = get_allocator_waste_size_function;
     27 }
     28 
     29 GetAllocatorWasteSizeFunction GetGetAllocatorWasteSizeFunction() {
     30   return g_get_allocator_waste_size_function;
     31 }
     32 
     33 void SetGetStatsFunction(GetStatsFunction get_stats_function) {
     34   g_get_stats_function = get_stats_function;
     35 }
     36 
     37 GetStatsFunction GetGetStatsFunction() {
     38   return g_get_stats_function;
     39 }
     40 
     41 void SetReleaseFreeMemoryFunction(
     42     ReleaseFreeMemoryFunction release_free_memory_function) {
     43   g_release_free_memory_function = release_free_memory_function;
     44 }
     45 
     46 ReleaseFreeMemoryFunction GetReleaseFreeMemoryFunction() {
     47   return g_release_free_memory_function;
     48 }
     49 
     50 }  // namespace thunks
     51 }  // namespace allocator
     52 }  // namespace base
     53