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