leak_annotations.h revision 513209b27ff55e2841eac0e4120199c23acce758
1// Copyright (c) 2010 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#ifndef BASE_DEBUG_LEAK_ANNOTATIONS_H_
6#define BASE_DEBUG_LEAK_ANNOTATIONS_H_
7#pragma once
8
9#include "build/build_config.h"
10
11#if defined(OS_LINUX) && defined(USE_HEAPCHECKER)
12
13#include "third_party/tcmalloc/chromium/src/google/heap-checker.h"
14
15// Annotate a program scope as having memory leaks. Tcmalloc's heap leak
16// checker will ignore them. Note that these annotations may mask real bugs
17// and should not be used in the production code.
18#define ANNOTATE_SCOPED_MEMORY_LEAK \
19    HeapLeakChecker::Disabler heap_leak_checker_disabler
20
21#else
22
23// If tcmalloc is not used, the annotations should be no-ops.
24#define ANNOTATE_SCOPED_MEMORY_LEAK
25
26#endif
27
28#endif  // BASE_DEBUG_LEAK_ANNOTATIONS_H_
29