Reviewers: Michael Lippautz,
Description:
Only evacuation candidate pages have a slots buffer, just visit these pages
when
filtering slots.
BUG=
Please review this at https://codereview.chromium.org/1299623003/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+4, -8 lines):
M src/heap/mark-compact.cc
Index: src/heap/mark-compact.cc
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
index
dbb2d9c1fddb851a2838300bc93a3bd238a8edc5..ddca90c83f01f25d3bff3788144903c245fa766c
100644
--- a/src/heap/mark-compact.cc
+++ b/src/heap/mark-compact.cc
@@ -296,14 +296,10 @@ void
MarkCompactCollector::ClearInvalidSlotsBufferEntries(PagedSpace* space) {
void MarkCompactCollector::ClearInvalidStoreAndSlotsBufferEntries() {
heap_->store_buffer()->ClearInvalidStoreBufferEntries();
- ClearInvalidSlotsBufferEntries(heap_->old_space());
- ClearInvalidSlotsBufferEntries(heap_->code_space());
- ClearInvalidSlotsBufferEntries(heap_->map_space());
-
- LargeObjectIterator it(heap_->lo_space());
- for (HeapObject* object = it.Next(); object != NULL; object = it.Next())
{
- MemoryChunk* chunk = MemoryChunk::FromAddress(object->address());
- SlotsBuffer::RemoveInvalidSlots(heap_, chunk->slots_buffer());
+ int npages = evacuation_candidates_.length();
+ for (int i = 0; i < npages; i++) {
+ Page* p = evacuation_candidates_[i];
+ SlotsBuffer::RemoveInvalidSlots(heap_, p->slots_buffer());
}
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.