// 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