Chromium Code Reviews| Index: src/heap/spaces.cc |
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc |
| index cdf1a193b60295099d38b111f09ebba3f550a9f8..80e7851edf349d39f1e34fa891c7a4274ac85c6a 100644 |
| --- a/src/heap/spaces.cc |
| +++ b/src/heap/spaces.cc |
| @@ -1655,7 +1655,7 @@ void NewSpace::StartNextInlineAllocationStep() { |
| intptr_t NewSpace::GetNextInlineAllocationStepSize() { |
| intptr_t next_step = 0; |
| for (int i = 0; i < inline_allocation_observers_.length(); ++i) { |
| - InlineAllocationObserver* o = inline_allocation_observers_[i]; |
| + AllocationObserver* o = inline_allocation_observers_[i]; |
| next_step = next_step ? Min(next_step, o->bytes_to_next_step()) |
| : o->bytes_to_next_step(); |
| } |
| @@ -1664,14 +1664,13 @@ intptr_t NewSpace::GetNextInlineAllocationStepSize() { |
| } |
| -void NewSpace::AddInlineAllocationObserver(InlineAllocationObserver* observer) { |
| +void NewSpace::AddInlineAllocationObserver(AllocationObserver* observer) { |
| inline_allocation_observers_.Add(observer); |
| StartNextInlineAllocationStep(); |
| } |
| -void NewSpace::RemoveInlineAllocationObserver( |
| - InlineAllocationObserver* observer) { |
| +void NewSpace::RemoveInlineAllocationObserver(AllocationObserver* observer) { |
| bool removed = inline_allocation_observers_.RemoveElement(observer); |
| // Only used in assertion. Suppress unused variable warning. |
| static_cast<void>(removed); |
| @@ -1701,8 +1700,8 @@ void NewSpace::InlineAllocationStep(Address top, Address new_top, |
| if (top_on_previous_step_) { |
| int bytes_allocated = static_cast<int>(top - top_on_previous_step_); |
| for (int i = 0; i < inline_allocation_observers_.length(); ++i) { |
| - inline_allocation_observers_[i]->InlineAllocationStep(bytes_allocated, |
| - soon_object, size); |
| + inline_allocation_observers_[i]->AllocationStep(bytes_allocated, |
| + soon_object, size); |
| } |
| top_on_previous_step_ = new_top; |
| } |
| @@ -3140,6 +3139,10 @@ AllocationResult LargeObjectSpace::AllocateRaw(int object_size, |
| } |
| heap()->incremental_marking()->OldSpaceStep(object_size); |
| + for (int i = 0; i < allocation_observers_.length(); ++i) { |
| + AllocationObserver* o = allocation_observers_[i]; |
| + o->AllocationStep(object_size, object->address(), object_size); |
| + } |
|
ofrobots
2016/01/23 16:16:31
This loop has been duplicated in a few places. It
mattloring
2016/01/26 00:42:48
Done.
|
| return object; |
| } |