Chromium Code Reviews| Index: src/spaces-inl.h |
| diff --git a/src/spaces-inl.h b/src/spaces-inl.h |
| index bcb6e63ad70af630d4e77e34c806fb3f8754dcdb..31e0cbee9f1bef887a123df3d5bea323c45387da 100644 |
| --- a/src/spaces-inl.h |
| +++ b/src/spaces-inl.h |
| @@ -127,6 +127,9 @@ Page* Page::Initialize(Heap* heap, |
| owner->IncreaseCapacity(Page::kObjectAreaSize); |
| owner->Free(page->ObjectAreaStart(), |
| page->ObjectAreaEnd() - page->ObjectAreaStart()); |
| + |
| + heap->incremental_marking()->SetOldSpacePageFlags(chunk); |
| + |
| return page; |
| } |
| @@ -140,11 +143,13 @@ bool PagedSpace::Contains(Address addr) { |
| void MemoryChunk::set_scan_on_scavenge(bool scan) { |
| if (scan) { |
| - if (!scan_on_scavenge_) heap_->increment_scan_on_scavenge_pages(); |
| + if (!scan_on_scavenge()) heap_->increment_scan_on_scavenge_pages(); |
| + SetFlag(SCAN_ON_SCAVENGE); |
| } else { |
| - if (scan_on_scavenge_) heap_->decrement_scan_on_scavenge_pages(); |
| + if (scan_on_scavenge()) heap_->decrement_scan_on_scavenge_pages(); |
| + ClearFlag(SCAN_ON_SCAVENGE); |
| } |
| - scan_on_scavenge_ = scan; |
| + heap_->incremental_marking()->SetOldSpacePageFlags(this); |
| } |
| @@ -269,6 +274,13 @@ MaybeObject* NewSpace::AllocateRawInternal(int size_in_bytes) { |
| } |
| +LargePage* LargePage::Initialize(Heap* heap, MemoryChunk* chunk) { |
| + // TODO(gc) ISOLATESMERGE initialize chunk to point to heap? |
|
Erik Corry
2011/05/11 18:53:57
I don't see how we can defer this to a TODO. We h
Vyacheslav Egorov (Chromium)
2011/05/13 11:06:52
Done.
|
| + heap->incremental_marking()->SetOldSpacePageFlags(chunk); |
| + return static_cast<LargePage*>(chunk); |
| +} |
| + |
| + |
| intptr_t LargeObjectSpace::Available() { |
| return ObjectSizeFor(heap()->isolate()->memory_allocator()->Available()); |
| } |