diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-12 15:43:21 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-12 15:43:21 +0000 |
commit | 63aa10cf7c1a00ad84470a970c7351402ce2859e (patch) | |
tree | 5a9d4f8127cbb8c154651c15f6b39d7219d66c01 /base | |
parent | c3bba9e954cd63e83e9c2e194b4c4d0441ecb221 (diff) | |
download | chromium_src-63aa10cf7c1a00ad84470a970c7351402ce2859e.zip chromium_src-63aa10cf7c1a00ad84470a970c7351402ce2859e.tar.gz chromium_src-63aa10cf7c1a00ad84470a970c7351402ce2859e.tar.bz2 |
Add redundancy to detect double frees in TCMalloc
I'll land and revert this quickly, to see what
impact it has on performance.
Added a single byte or word (tranparently) to all
allocations, and wrote a unique value into that
location after each allocation. When free() is
called, we validate the flag, and then mark
the block as not being allocated.
Any time a block fails to validate, we crash,
as this means the object either overran its
allocated region (or suffered memory corruption),
or else (more likely) a double free took place.
We have two distinct crash stacks for the
two distinct validation problems (corrupt vs
double free).
TBR=mbelshe
Review URL: http://codereview.chromium.org/6679021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77941 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/allocator/allocator_shim.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/base/allocator/allocator_shim.cc b/base/allocator/allocator_shim.cc index f11164c..0bee3d3 100644 --- a/base/allocator/allocator_shim.cc +++ b/base/allocator/allocator_shim.cc @@ -41,7 +41,7 @@ typedef enum { // See SetupSubprocessAllocator() to specify a default secondary (subprocess) // allocator. // TODO(jar): Switch to using TCMALLOC for the renderer as well. -static Allocator allocator = WINHEAP; +static Allocator allocator = TCMALLOC; // The names of the environment variables that can optionally control the // selection of the allocator. The primary may be used to control overall |