// 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 GetProperty(const char* name, size_t* value) { thunks::GetPropertyFunction get_property_function = base::allocator::thunks::GetGetPropertyFunction(); return get_property_function != NULL && get_property_function(name, value); } void GetStats(char* buffer, int buffer_length) { DCHECK_GT(buffer_length, 0); thunks::GetStatsFunction get_stats_function = base::allocator::thunks::GetGetStatsFunction(); if (get_stats_function) get_stats_function(buffer, buffer_length); else buffer[0] = '\0'; } void ReleaseFreeMemory() { thunks::ReleaseFreeMemoryFunction release_free_memory_function = base::allocator::thunks::GetReleaseFreeMemoryFunction(); if (release_free_memory_function) release_free_memory_function(); } void SetGetPropertyFunction( thunks::GetPropertyFunction get_property_function) { DCHECK_EQ(base::allocator::thunks::GetGetPropertyFunction(), reinterpret_cast(NULL)); base::allocator::thunks::SetGetPropertyFunction(get_property_function); } void SetGetStatsFunction(thunks::GetStatsFunction get_stats_function) { DCHECK_EQ(base::allocator::thunks::GetGetStatsFunction(), reinterpret_cast(NULL)); base::allocator::thunks::SetGetStatsFunction(get_stats_function); } void SetReleaseFreeMemoryFunction( thunks::ReleaseFreeMemoryFunction release_free_memory_function) { DCHECK_EQ(base::allocator::thunks::GetReleaseFreeMemoryFunction(), reinterpret_cast(NULL)); base::allocator::thunks::SetReleaseFreeMemoryFunction( release_free_memory_function); } } // namespace allocator } // namespace base