From 8561f8e22c2b1e5e8489541c24cad292cd48ab6b Mon Sep 17 00:00:00 2001 From: "hbono@chromium.org" Date: Wed, 31 Oct 2012 03:30:48 +0000 Subject: A Speculative Revert for 164939 - Use tcmalloc's debugallocation for Debug builds to catch memory problems early, easily, and cleanly. Because of gyp limitations, this can't be now controlled by a flag. BUG=30715 TEST=none Review URL: https://codereview.chromium.org/11266019 TBR=phajdan.jr@chromium.org Review URL: https://codereview.chromium.org/11360002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165096 0039d316-1c4b-4281-b951-d872f2087c98 --- base/allocator/allocator.gyp | 39 ++++++++++++++++------------------ base/allocator/allocator_shim.cc | 2 +- base/allocator/debugallocation_shim.cc | 9 -------- 3 files changed, 19 insertions(+), 31 deletions(-) delete mode 100644 base/allocator/debugallocation_shim.cc (limited to 'base') diff --git a/base/allocator/allocator.gyp b/base/allocator/allocator.gyp index fc4b902..f669298 100644 --- a/base/allocator/allocator.gyp +++ b/base/allocator/allocator.gyp @@ -203,7 +203,6 @@ 'allocator_shim.cc', 'allocator_shim.h', - 'debugallocation_shim.cc', 'generic_allocators.cc', 'win_allocator.cc', ], @@ -213,10 +212,6 @@ 'generic_allocators.cc', 'win_allocator.cc', - # Included by debugallocation_shim.cc. - '<(tcmalloc_dir)/src/debugallocation.cc', - '<(tcmalloc_dir)/src/tcmalloc.cc', - # We simply don't use these, but list them above so that IDE # users can view the full available source for reference, etc. '<(tcmalloc_dir)/src/addressmap-inl.h', @@ -305,21 +300,6 @@ 'RuntimeLibrary': '0', }, }, - 'variables': { - # Provide a way to force disable debugallocation in Debug builds, - # e.g. for profiling (it's more rare to profile Debug builds, - # but people sometimes need to do that). - 'disable_debugallocation%': 0, - }, - 'conditions': [ - ['disable_debugallocation==0', { - 'defines': [ - # Use debugallocation for Debug builds to catch problems early - # and cleanly, http://crbug.com/30715 . - 'TCMALLOC_FOR_DEBUGALLOCATION', - ], - }], - ], }, }, 'conditions': [ @@ -366,7 +346,7 @@ '<(tcmalloc_dir)/src/system-alloc.h', # included by allocator_shim.cc - 'debugallocation_shim.cc', + '<(tcmalloc_dir)/src/tcmalloc.cc', # heap-profiler/checker/cpuprofiler '<(tcmalloc_dir)/src/base/thread_lister.c', @@ -385,6 +365,9 @@ '<(tcmalloc_dir)/src/profile-handler.cc', '<(tcmalloc_dir)/src/profile-handler.h', '<(tcmalloc_dir)/src/profiler.cc', + + # debugallocation + '<(tcmalloc_dir)/src/debugallocation.cc', ], }], ['OS=="linux" or OS=="freebsd" or OS=="solaris"', { @@ -431,6 +414,20 @@ '-fvtable-verify=preinit', ], }], + [ 'linux_use_debugallocation==1', { + 'sources!': [ + # debugallocation.cc #includes tcmalloc.cc, + # so only one of them should be used. + '<(tcmalloc_dir)/src/tcmalloc.cc', + ], + 'defines': [ + 'TCMALLOC_FOR_DEBUGALLOCATION', + ], + }, { # linux_use_debugallocation != 1 + 'sources!': [ + '<(tcmalloc_dir)/src/debugallocation.cc', + ], + }], [ 'linux_keep_shadow_stacks==1', { 'sources': [ '<(tcmalloc_dir)/src/linux_shadow_stacks.cc', diff --git a/base/allocator/allocator_shim.cc b/base/allocator/allocator_shim.cc index 5acc533..bcc84aa 100644 --- a/base/allocator/allocator_shim.cc +++ b/base/allocator/allocator_shim.cc @@ -56,7 +56,7 @@ static const char secondary_name[] = "CHROME_ALLOCATOR_2"; // We include tcmalloc and the win_allocator to get as much inlining as // possible. -#include "debugallocation_shim.cc" +#include "tcmalloc.cc" #include "win_allocator.cc" // Forward declarations from jemalloc. diff --git a/base/allocator/debugallocation_shim.cc b/base/allocator/debugallocation_shim.cc deleted file mode 100644 index d1cf52a..0000000 --- a/base/allocator/debugallocation_shim.cc +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#if defined(TCMALLOC_FOR_DEBUGALLOCATION) -#include "third_party/tcmalloc/chromium/src/debugallocation.cc" -#else -#include "third_party/tcmalloc/chromium/src/tcmalloc.cc" -#endif -- cgit v1.1