Index: src/heap/spaces.cc |
diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc |
index c58b827368dae4c6913c9af67348d5597d2894d9..97795baa5f76685dcfb02d204d7cb9fba5150542 100644 |
--- a/src/heap/spaces.cc |
+++ b/src/heap/spaces.cc |
@@ -2839,7 +2839,12 @@ void PagedSpace::RepairFreeListsAfterDeserialization() { |
size_t size = page->wasted_memory(); |
if (size == 0) continue; |
DCHECK_GE(static_cast<size_t>(Page::kPageSize), size); |
- Address address = page->OffsetToAddress(Page::kPageSize - size); |
+ Address address = |
Slava Chigrin
2017/04/06 12:30:13
I suppose here was a bug. As described here
https:
ulan
2017/04/06 15:11:27
We can use page->HighWaterMark() and page->area_en
Slava Chigrin
2017/04/06 15:48:34
Done.
|
+ page->OffsetToAddress((page->executable() == EXECUTABLE |
+ ? MemoryAllocator::CodePageAreaEndOffset() |
+ : Page::kPageSize) - |
+ size); |
+ |
heap()->CreateFillerObjectAt(address, static_cast<int>(size), |
ClearRecordedSlots::kNo); |
} |