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 18 void MemoryDebug::SetMemoryInUseEnabled(bool enabled) { 19 memory_in_use_ = enabled; 20 } 21 22 void MemoryDebug::DumpAllMemoryInUse() { 23 #ifdef PURIFY 24 if (memory_in_use_) 25 PurifyAllInuse(); 26 #endif 27 } 28 29 void MemoryDebug::DumpNewMemoryInUse() { 30 #ifdef PURIFY 31 if (memory_in_use_) 32 PurifyNewInuse(); 33 #endif 34 } 35 36 void MemoryDebug::DumpAllLeaks() { 37 #ifdef PURIFY 38 PurifyAllLeaks(); 39 #endif 40 } 41 42 void MemoryDebug::DumpNewLeaks() { 43 #ifdef PURIFY 44 PurifyNewLeaks(); 45 #endif 46 } 47 48 void MemoryDebug::MarkAsInitialized(void* addr, size_t size) { 49 #ifdef PURIFY 50 PurifyMarkAsInitialized(addr, size); 51 #endif 52 } 53 54 } // namespace base 55