1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be
3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file.
4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#ifndef BASE_DEBUG_LEAK_ANNOTATIONS_H_
6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#define BASE_DEBUG_LEAK_ANNOTATIONS_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "build/build_config.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_LINUX) && defined(USE_HEAPCHECKER)
12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "third_party/tcmalloc/chromium/src/google/heap-checker.h"
14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Annotate a program scope as having memory leaks. Tcmalloc's heap leak
16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// checker will ignore them. Note that these annotations may mask real bugs
17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// and should not be used in the production code.
18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define ANNOTATE_SCOPED_MEMORY_LEAK \
19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott    HeapLeakChecker::Disabler heap_leak_checker_disabler
20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#else
22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// If tcmalloc is not used, the annotations should be no-ops.
24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define ANNOTATE_SCOPED_MEMORY_LEAK
25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif
27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott
28513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#endif  // BASE_DEBUG_LEAK_ANNOTATIONS_H_
29