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