Chromium Code Reviews| Index: base/trace_event/heap_profiler_allocation_register.cc |
| diff --git a/base/trace_event/heap_profiler_allocation_register.cc b/base/trace_event/heap_profiler_allocation_register.cc |
| index 37647eefbbb1246bea852f86adfe6843903801ee..292015359e9f88f6e0a8f76c3ea2bf2ede884ce3 100644 |
| --- a/base/trace_event/heap_profiler_allocation_register.cc |
| +++ b/base/trace_event/heap_profiler_allocation_register.cc |
| @@ -10,10 +10,14 @@ namespace base { |
| namespace trace_event { |
| AllocationRegister::AllocationRegister() |
| - // Reserve enough address space to store |kNumCells| entries if necessary, |
| + : AllocationRegister(kNumBuckets * kNumCellsPerBucket) {} |
| + |
| +AllocationRegister::AllocationRegister(uint32_t num_cells) |
| + // Reserve enough address space to store |num_cells_| entries if necessary, |
| // with a guard page after it to crash the program when attempting to store |
| // more entries. |
| - : cells_(static_cast<Cell*>(AllocateVirtualMemory(kNumCells * |
| + : num_cells_(num_cells), |
| + cells_(static_cast<Cell*>(AllocateVirtualMemory(num_cells_ * |
| sizeof(Cell)))), |
| buckets_(static_cast<CellIndex*>( |
| AllocateVirtualMemory(kNumBuckets * sizeof(CellIndex)))), |
| @@ -23,9 +27,10 @@ AllocationRegister::AllocationRegister() |
| free_list_(0), |
| next_unused_cell_(1) {} |
| + |
|
Primiano Tucci (use gerrit)
2015/12/18 10:40:09
nit: extra newline?
|
| AllocationRegister::~AllocationRegister() { |
| FreeVirtualMemory(buckets_, kNumBuckets * sizeof(CellIndex)); |
| - FreeVirtualMemory(cells_, kNumCells * sizeof(Cell)); |
| + FreeVirtualMemory(cells_, num_cells_ * sizeof(Cell)); |
| } |
| void AllocationRegister::Insert(void* address, |
| @@ -144,7 +149,7 @@ AllocationRegister::CellIndex AllocationRegister::GetFreeCell() { |
| // the simplest solution is to just allocate a humongous chunk of address |
| // space. |
| - DCHECK_LT(next_unused_cell_, kNumCells + 1); |
| + DCHECK_LT(next_unused_cell_, num_cells_ + 1); |
| return idx; |
| } |