Index: src/spaces.cc |
diff --git a/src/spaces.cc b/src/spaces.cc |
index 586c5e5bf8235de3403e56832077fe5689262edc..6ec5fa685cdf04d9eca6959fbdc3bc188a3ad96e 100644 |
--- a/src/spaces.cc |
+++ b/src/spaces.cc |
@@ -74,6 +74,7 @@ void HeapObjectIterator::Initialize(Address cur, Address end, |
cur_limit_ = (p == end_page_) ? end_addr_ : p->AllocationTop(); |
if (!p->IsFlagSet(Page::IS_CONTINUOUS)) { |
+ ASSERT(IncrementalMarking::state() == IncrementalMarking::STOPPED); |
cur_addr_ = Marking::FirstLiveObject(cur_addr_, cur_limit_); |
if (cur_addr_ > cur_limit_) cur_addr_ = cur_limit_; |
} |
@@ -95,6 +96,7 @@ HeapObject* HeapObjectIterator::FromNextPage() { |
cur_limit_ = (cur_page == end_page_) ? end_addr_ : cur_page->AllocationTop(); |
if (!cur_page->IsFlagSet(Page::IS_CONTINUOUS)) { |
+ ASSERT(IncrementalMarking::state() == IncrementalMarking::STOPPED); |
cur_addr_ = Marking::FirstLiveObject(cur_addr_, cur_limit_); |
if (cur_addr_ > cur_limit_) cur_addr_ = cur_limit_; |
} |
@@ -109,6 +111,7 @@ HeapObject* HeapObjectIterator::FromNextPage() { |
void HeapObjectIterator::AdvanceUsingMarkbits() { |
+ ASSERT(IncrementalMarking::state() == IncrementalMarking::STOPPED); |
HeapObject* obj = HeapObject::FromAddress(cur_addr_); |
int obj_size = (size_func_ == NULL) ? obj->Size() : size_func_(obj); |
ASSERT_OBJECT_SIZE(obj_size); |
@@ -2310,6 +2313,8 @@ MaybeObject* LargeObjectSpace::AllocateRawInternal(int object_size, |
page->set_next_page(first_page_); |
first_page_ = page; |
+ |
+ IncrementalMarking::Step(object_size); |
return page->GetObject(); |
} |