Chromium Code Reviews| Index: src/heap/heap.cc |
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
| index 3c8b876bf5d1e5b529001a985fe5ecabfdd92085..bdca5533f0c047ca66709e3b1deceb5e02b6a151 100644 |
| --- a/src/heap/heap.cc |
| +++ b/src/heap/heap.cc |
| @@ -1668,7 +1668,7 @@ void Heap::Scavenge() { |
| // Copy objects reachable from the old generation. |
| TRACE_GC(tracer(), GCTracer::Scope::SCAVENGER_OLD_TO_NEW_POINTERS); |
| RememberedSet<OLD_TO_NEW>::Iterate(this, [this](Address addr) { |
| - return Scavenger::CheckAndScavengeObject(this, addr); |
| + return Scavenger::CheckAndScavengeObject(this, addr, DEFAULT_PROMOTION); |
| }); |
| RememberedSet<OLD_TO_NEW>::IterateTyped( |
| @@ -1676,7 +1676,7 @@ void Heap::Scavenge() { |
| return UpdateTypedSlotHelper::UpdateTypedSlot( |
| isolate(), type, addr, [this](Object** addr) { |
| return Scavenger::CheckAndScavengeObject( |
| - this, reinterpret_cast<Address>(addr)); |
| + this, reinterpret_cast<Address>(addr), FORCE_PROMOTION); |
|
ulan
2016/05/23 13:04:22
Please add a comment why we force promotion here.
ahaas
2016/05/23 13:31:48
Done.
|
| }); |
| }); |
| } |
| @@ -4665,8 +4665,8 @@ void Heap::IteratePromotedObjectPointers(HeapObject* object, Address start, |
| Object* target = *slot; |
| if (target->IsHeapObject()) { |
| if (Heap::InFromSpace(target)) { |
| - callback(reinterpret_cast<HeapObject**>(slot), |
| - HeapObject::cast(target)); |
| + callback(reinterpret_cast<HeapObject**>(slot), HeapObject::cast(target), |
| + DEFAULT_PROMOTION); |
| Object* new_target = *slot; |
| if (InNewSpace(new_target)) { |
| SLOW_DCHECK(Heap::InToSpace(new_target)); |