• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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/memory/memory_debug.h"
6 
7 #ifdef PURIFY
8 // this #define is used to prevent people from directly using pure.h
9 // instead of memory_debug.h
10 #define PURIFY_PRIVATE_INCLUDE
11 #include "base/third_party/purify/pure.h"
12 #endif
13 
14 namespace base {
15 
16 bool MemoryDebug::memory_in_use_ = false;
17 
SetMemoryInUseEnabled(bool enabled)18 void MemoryDebug::SetMemoryInUseEnabled(bool enabled) {
19   memory_in_use_ = enabled;
20 }
21 
DumpAllMemoryInUse()22 void MemoryDebug::DumpAllMemoryInUse() {
23 #ifdef PURIFY
24   if (memory_in_use_)
25     PurifyAllInuse();
26 #endif
27 }
28 
DumpNewMemoryInUse()29 void MemoryDebug::DumpNewMemoryInUse() {
30 #ifdef PURIFY
31   if (memory_in_use_)
32     PurifyNewInuse();
33 #endif
34 }
35 
DumpAllLeaks()36 void MemoryDebug::DumpAllLeaks() {
37 #ifdef PURIFY
38   PurifyAllLeaks();
39 #endif
40 }
41 
DumpNewLeaks()42 void MemoryDebug::DumpNewLeaks() {
43 #ifdef PURIFY
44   PurifyNewLeaks();
45 #endif
46 }
47 
MarkAsInitialized(void * addr,size_t size)48 void MemoryDebug::MarkAsInitialized(void* addr, size_t size) {
49 #ifdef PURIFY
50   PurifyMarkAsInitialized(addr, size);
51 #endif
52 }
53 
54 }  // namespace base
55