| Index: base/allocator/allocator_extension_thunks.cc
|
| diff --git a/base/allocator/allocator_extension_thunks.cc b/base/allocator/allocator_extension_thunks.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f8985a26826993d98df4ec3a170fd8c65595df79
|
| --- /dev/null
|
| +++ b/base/allocator/allocator_extension_thunks.cc
|
| @@ -0,0 +1,42 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "base/allocator/allocator_extension_thunks.h"
|
| +
|
| +#include <cstddef> // for NULL
|
| +
|
| +namespace base {
|
| +namespace allocator {
|
| +namespace thunks {
|
| +
|
| +// This slightly odd translation unit exists because of the peculularity of how
|
| +// allocator_unittests works on windows. That target has to perform
|
| +// tcmalloc-specific initialization on windows, but it cannot depend on base
|
| +// otherwise. This target sits in the middle - both libbase and
|
| +// allocator_unittests can depend on it.
|
| +// This file can't depend on anything else in base, including logging.
|
| +
|
| +static GetStatsFunction* g_get_stats_function = NULL;
|
| +static ReleaseFreeMemoryFunction* g_release_free_memory_function = NULL;
|
| +
|
| +void SetGetStatsFunction(GetStatsFunction* get_stats_function) {
|
| + g_get_stats_function = get_stats_function;
|
| +}
|
| +
|
| +GetStatsFunction* GetGetStatsFunction() {
|
| + return g_get_stats_function;
|
| +}
|
| +
|
| +void SetReleaseFreeMemoryFunction(
|
| + ReleaseFreeMemoryFunction* release_free_memory_function) {
|
| + g_release_free_memory_function = release_free_memory_function;
|
| +}
|
| +
|
| +ReleaseFreeMemoryFunction* GetReleaseFreeMemoryFunction() {
|
| + return g_release_free_memory_function;
|
| +}
|
| +
|
| +} // namespace thunks
|
| +} // namespace allocator
|
| +} // namespace base
|
|
|