Index: src/heap-inl.h |
diff --git a/src/heap-inl.h b/src/heap-inl.h |
index cc558b8248bb767b47ecb0a09081ec0050861b49..5cb24eec2f05c70b742dffea80bceea349830009 100644 |
--- a/src/heap-inl.h |
+++ b/src/heap-inl.h |
@@ -196,12 +196,9 @@ void Heap::RecordWrite(Address address, int offset) { |
void Heap::RecordWrites(Address address, int start, int len) { |
if (new_space_.Contains(address)) return; |
ASSERT(!new_space_.FromSpaceContains(address)); |
- for (int offset = start; |
- offset < start + len * kPointerSize; |
- offset += kPointerSize) { |
- SLOW_ASSERT(Contains(address + offset)); |
- Page::FromAddress(address)->MarkRegionDirty(address + offset); |
- } |
+ Page* page = Page::FromAddress(address); |
+ page->SetRegionMarks(page->GetRegionMarks() | |
+ page->GetRegionMaskForSpan(address + start, len * kPointerSize)); |
} |