| Index: src/heap/heap-inl.h
|
| diff --git a/src/heap/heap-inl.h b/src/heap/heap-inl.h
|
| index 9499546850e55f5133daecb1286a52faadcdcb96..dda9a89c988b47349b26d07b7920064d76a82c58 100644
|
| --- a/src/heap/heap-inl.h
|
| +++ b/src/heap/heap-inl.h
|
| @@ -519,9 +519,6 @@ bool Heap::OldGenerationAllocationLimitReached() {
|
|
|
| template <PromotionMode promotion_mode>
|
| bool Heap::ShouldBePromoted(Address old_address, int object_size) {
|
| - Page* page = Page::FromAddress(old_address);
|
| - Address age_mark = new_space_->age_mark();
|
| -
|
| if (promotion_mode == PROMOTE_MARKED) {
|
| MarkBit mark_bit = ObjectMarking::MarkBitFrom(old_address);
|
| if (!Marking::IsWhite(mark_bit)) {
|
| @@ -529,8 +526,7 @@ bool Heap::ShouldBePromoted(Address old_address, int object_size) {
|
| }
|
| }
|
|
|
| - return page->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK) &&
|
| - (!page->ContainsLimit(age_mark) || old_address < age_mark);
|
| + return Page::FromAddress(old_address)->InIntermediateGeneration();
|
| }
|
|
|
| PromotionMode Heap::CurrentPromotionMode() {
|
| @@ -631,16 +627,8 @@ AllocationMemento* Heap::FindAllocationMemento(HeapObject* object) {
|
| // Bail out if the memento is below the age mark, which can happen when
|
| // mementos survived because a page got moved within new space.
|
| Page* object_page = Page::FromAddress(object_address);
|
| - if (object_page->IsFlagSet(Page::NEW_SPACE_BELOW_AGE_MARK)) {
|
| - Address age_mark =
|
| - reinterpret_cast<SemiSpace*>(object_page->owner())->age_mark();
|
| - if (!object_page->Contains(age_mark)) {
|
| - return nullptr;
|
| - }
|
| - // Do an exact check in the case where the age mark is on the same page.
|
| - if (object_address < age_mark) {
|
| - return nullptr;
|
| - }
|
| + if (object_page->InIntermediateGeneration()) {
|
| + return nullptr;
|
| }
|
|
|
| AllocationMemento* memento_candidate = AllocationMemento::cast(candidate);
|
|
|