- add sources.
[platform/framework/web/crosswalk.git] / src / base / allocator / allocator_extension.cc
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.h"
6
7 #include "base/logging.h"
8
9 namespace base {
10 namespace allocator {
11
12 bool GetAllocatorWasteSize(size_t* size) {
13   thunks::GetAllocatorWasteSizeFunction get_allocator_waste_size_function =
14       thunks::GetGetAllocatorWasteSizeFunction();
15   return get_allocator_waste_size_function != NULL &&
16          get_allocator_waste_size_function(size);
17 }
18
19 void GetStats(char* buffer, int buffer_length) {
20   DCHECK_GT(buffer_length, 0);
21   thunks::GetStatsFunction get_stats_function = thunks::GetGetStatsFunction();
22   if (get_stats_function)
23     get_stats_function(buffer, buffer_length);
24   else
25     buffer[0] = '\0';
26 }
27
28 void ReleaseFreeMemory() {
29   thunks::ReleaseFreeMemoryFunction release_free_memory_function =
30       thunks::GetReleaseFreeMemoryFunction();
31   if (release_free_memory_function)
32     release_free_memory_function();
33 }
34
35 void SetGetAllocatorWasteSizeFunction(
36     thunks::GetAllocatorWasteSizeFunction get_allocator_waste_size_function) {
37   DCHECK_EQ(thunks::GetGetAllocatorWasteSizeFunction(),
38             reinterpret_cast<thunks::GetAllocatorWasteSizeFunction>(NULL));
39   thunks::SetGetAllocatorWasteSizeFunction(get_allocator_waste_size_function);
40 }
41
42 void SetGetStatsFunction(thunks::GetStatsFunction get_stats_function) {
43   DCHECK_EQ(thunks::GetGetStatsFunction(),
44             reinterpret_cast<thunks::GetStatsFunction>(NULL));
45   thunks::SetGetStatsFunction(get_stats_function);
46 }
47
48 void SetReleaseFreeMemoryFunction(
49     thunks::ReleaseFreeMemoryFunction release_free_memory_function) {
50   DCHECK_EQ(thunks::GetReleaseFreeMemoryFunction(),
51             reinterpret_cast<thunks::ReleaseFreeMemoryFunction>(NULL));
52   thunks::SetReleaseFreeMemoryFunction(release_free_memory_function);
53 }
54
55 }  // namespace allocator
56 }  // namespace base