Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(322)

Unified Diff: src/heap/store-buffer.cc

Issue 1420423009: [heap] Black allocation. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/heap/store-buffer.cc
diff --git a/src/heap/store-buffer.cc b/src/heap/store-buffer.cc
index 9a469ee5f2759be2af7c7250c98626a695acae85..2ae73d9cfbbc7f1670e0a75a83942f8ad993df04 100644
--- a/src/heap/store-buffer.cc
+++ b/src/heap/store-buffer.cc
@@ -379,8 +379,10 @@ void StoreBuffer::ClearInvalidStoreBufferEntries() {
// If the target object is not black, the source slot must be part
// of a non-black (dead) object.
HeapObject* heap_object = HeapObject::cast(object);
- if (Marking::IsBlack(Marking::MarkBitFrom(heap_object)) &&
- heap_->mark_compact_collector()->IsSlotInLiveObject(addr)) {
+ Page* heap_object_page = Page::FromAddress(heap_object->address());
+ if (heap_object_page->IsFlagSet(Page::BLACK_PAGE) ||
+ (Marking::IsBlack(Marking::MarkBitFrom(heap_object)) &&
+ heap_->mark_compact_collector()->IsSlotInLiveObject(addr))) {
*new_top++ = addr;
}
}

Powered by Google App Engine
This is Rietveld 408576698