Chromium Code Reviews| Index: src/incremental-marking-inl.h |
| diff --git a/src/incremental-marking-inl.h b/src/incremental-marking-inl.h |
| index 1e28e4a06b1cf1cf7ead93c810b17cf2134ebf4f..427a8f00ba177209c141bcf2af5e946c4da624c5 100644 |
| --- a/src/incremental-marking-inl.h |
| +++ b/src/incremental-marking-inl.h |
| @@ -44,8 +44,13 @@ bool IncrementalMarking::BaseRecordWrite(HeapObject* obj, |
| if (Marking::IsBlack(obj_bit)) { |
| MemoryChunk* chunk = MemoryChunk::FromAddress(obj->address()); |
| if (chunk->IsFlagSet(MemoryChunk::HAS_PROGRESS_BAR)) { |
| - WhiteToGreyAndPush(value_heap_obj, value_bit); |
| - RestartIfNotMarking(); |
| + if (reinterpret_cast<Address>(slot) - reinterpret_cast<Address>(obj) |
|
Michael Starzinger
2012/11/21 17:11:38
We don't even need to record relocation slots when
Hannes Payer (out of office)
2012/11/21 18:03:57
Done.
|
| + < chunk->progress_bar()) { |
| + ASSERT(reinterpret_cast<Address>(slot) |
| + > reinterpret_cast<Address>(obj)); |
| + WhiteToGreyAndPush(value_heap_obj, value_bit); |
| + RestartIfNotMarking(); |
| + } |
| } else { |
| BlackToGreyAndUnshift(obj, obj_bit); |
| RestartIfNotMarking(); |