Chromium Code Reviews| Index: third_party/tcmalloc/chromium/src/heap-profile-table.cc |
| diff --git a/third_party/tcmalloc/chromium/src/heap-profile-table.cc b/third_party/tcmalloc/chromium/src/heap-profile-table.cc |
| index 1ef18586e4d050e6e0d1ded2b5ca2df256c058be..83ae150f255d3bddf9a7b4e589bbd78777ee649f 100644 |
| --- a/third_party/tcmalloc/chromium/src/heap-profile-table.cc |
| +++ b/third_party/tcmalloc/chromium/src/heap-profile-table.cc |
| @@ -66,6 +66,7 @@ |
| #include "memory_region_map.h" |
| #include "base/commandlineflags.h" |
| #include "base/logging.h" // for the RawFD I/O commands |
| +#include "base/low_level_alloc.h" |
| #include "base/sysinfo.h" |
| using std::sort; |
| @@ -355,7 +356,8 @@ HeapProfileTable::MakeSortedBucketList() const { |
| return list; |
| } |
| -void HeapProfileTable::RefreshMMapData() { |
| +void HeapProfileTable::RefreshMMapData(Allocator mmap_alloc, |
| + DeAllocator mmap_dealloc) { |
| // Make the table |
| static const int mmap_table_bytes = kHashTableSize * sizeof(*mmap_table_); |
| if (mmap_table_ == NULL) { |
| @@ -364,9 +366,9 @@ void HeapProfileTable::RefreshMMapData() { |
| } |
| num_available_mmap_buckets_ = 0; |
| - ClearMMapData(); |
| - mmap_address_map_ = |
| - new(alloc_(sizeof(AllocationMap))) AllocationMap(alloc_, dealloc_); |
| + ClearMMapData(mmap_dealloc); |
| + mmap_address_map_ = new(mmap_alloc(sizeof(AllocationMap))) |
| + AllocationMap(mmap_alloc, mmap_dealloc); |
| MemoryRegionMap::LockHolder l; |
| for (MemoryRegionMap::RegionIterator r = |
| @@ -387,11 +389,11 @@ void HeapProfileTable::RefreshMMapData() { |
| } |
| } |
| -void HeapProfileTable::ClearMMapData() { |
| +void HeapProfileTable::ClearMMapData(DeAllocator mmap_dealloc) { |
| if (mmap_address_map_ != NULL) { |
|
jar (doing other things)
2012/04/04 17:38:40
nit: early return on "== NULL" will mean you won't
Dai Mikurube (NOT FULLTIME)
2012/04/05 05:19:26
Done.
|
| mmap_address_map_->Iterate(ZeroBucketCountsIterator, this); |
| mmap_address_map_->~AllocationMap(); |
| - dealloc_(mmap_address_map_); |
| + mmap_dealloc(mmap_address_map_); |
| mmap_address_map_ = NULL; |
| } |
| } |