| // 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.h" |
| |
| #include "base/logging.h" |
| |
| namespace base { |
| namespace allocator { |
| |
| bool GetAllocatorWasteSize(size_t* size) { |
| thunks::GetAllocatorWasteSizeFunction get_allocator_waste_size_function = |
| thunks::GetGetAllocatorWasteSizeFunction(); |
| return get_allocator_waste_size_function != NULL && |
| get_allocator_waste_size_function(size); |
| } |
| |
| void GetStats(char* buffer, int buffer_length) { |
| DCHECK_GT(buffer_length, 0); |
| thunks::GetStatsFunction get_stats_function = thunks::GetGetStatsFunction(); |
| if (get_stats_function) |
| get_stats_function(buffer, buffer_length); |
| else |
| buffer[0] = '\0'; |
| } |
| |
| void ReleaseFreeMemory() { |
| thunks::ReleaseFreeMemoryFunction release_free_memory_function = |
| thunks::GetReleaseFreeMemoryFunction(); |
| if (release_free_memory_function) |
| release_free_memory_function(); |
| } |
| |
| void SetGetAllocatorWasteSizeFunction( |
| thunks::GetAllocatorWasteSizeFunction get_allocator_waste_size_function) { |
| DCHECK_EQ(thunks::GetGetAllocatorWasteSizeFunction(), |
| reinterpret_cast<thunks::GetAllocatorWasteSizeFunction>(NULL)); |
| thunks::SetGetAllocatorWasteSizeFunction(get_allocator_waste_size_function); |
| } |
| |
| void SetGetStatsFunction(thunks::GetStatsFunction get_stats_function) { |
| DCHECK_EQ(thunks::GetGetStatsFunction(), |
| reinterpret_cast<thunks::GetStatsFunction>(NULL)); |
| thunks::SetGetStatsFunction(get_stats_function); |
| } |
| |
| void SetReleaseFreeMemoryFunction( |
| thunks::ReleaseFreeMemoryFunction release_free_memory_function) { |
| DCHECK_EQ(thunks::GetReleaseFreeMemoryFunction(), |
| reinterpret_cast<thunks::ReleaseFreeMemoryFunction>(NULL)); |
| thunks::SetReleaseFreeMemoryFunction(release_free_memory_function); |
| } |
| |
| } // namespace allocator |
| } // namespace base |