[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 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 | ||||
[email protected] | a849dc1 | 2012-05-24 11:13:23 | [diff] [blame] | 14 | // allocator_unittests work on windows. That target has to perform |
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 15 | // tcmalloc-specific initialization on windows, but it cannot depend on base |
[email protected] | a849dc1 | 2012-05-24 11:13:23 | [diff] [blame] | 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. | ||||
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 19 | |
[email protected] | 3b875959 | 2012-12-07 12:19:51 | [diff] [blame] | 20 | static GetAllocatorWasteSizeFunction g_get_allocator_waste_size_function = NULL; |
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 21 | static GetStatsFunction g_get_stats_function = NULL; |
22 | static ReleaseFreeMemoryFunction g_release_free_memory_function = NULL; | ||||
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 23 | |
[email protected] | 3b875959 | 2012-12-07 12:19:51 | [diff] [blame] | 24 | void SetGetAllocatorWasteSizeFunction( |
25 | GetAllocatorWasteSizeFunction get_allocator_waste_size_function) { | ||||
26 | g_get_allocator_waste_size_function = get_allocator_waste_size_function; | ||||
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 27 | } |
28 | |||||
[email protected] | 3b875959 | 2012-12-07 12:19:51 | [diff] [blame] | 29 | GetAllocatorWasteSizeFunction GetGetAllocatorWasteSizeFunction() { |
30 | return g_get_allocator_waste_size_function; | ||||
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 31 | } |
32 | |||||
33 | void SetGetStatsFunction(GetStatsFunction get_stats_function) { | ||||
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 34 | g_get_stats_function = get_stats_function; |
35 | } | ||||
36 | |||||
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 37 | GetStatsFunction GetGetStatsFunction() { |
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 38 | return g_get_stats_function; |
39 | } | ||||
40 | |||||
41 | void SetReleaseFreeMemoryFunction( | ||||
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 42 | ReleaseFreeMemoryFunction release_free_memory_function) { |
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 43 | g_release_free_memory_function = release_free_memory_function; |
44 | } | ||||
45 | |||||
[email protected] | 094c893 | 2012-09-17 11:44:10 | [diff] [blame] | 46 | ReleaseFreeMemoryFunction GetReleaseFreeMemoryFunction() { |
[email protected] | 237a1485 | 2012-04-28 02:56:38 | [diff] [blame] | 47 | return g_release_free_memory_function; |
48 | } | ||||
49 | |||||
50 | } // namespace thunks | ||||
51 | } // namespace allocator | ||||
52 | } // namespace base |