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