Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 4da83e859e3ddff3f2988c00f066ab63ddf58c04..8a844e4a1e616f61f5660bad0bee816816f0e8a7 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -6392,8 +6392,8 @@ void Heap::FreeQueuedChunks() { |
// it try to perform a search in the list of pages owned by of the large |
// object space and queued chunks were detached from that list. |
// To work around this we split large chunk into normal kPageSize aligned |
- // pieces and initialize owner field and flags of every piece. |
- // If FromAnyPointerAddress encounteres a slot that belongs to one of |
+ // pieces and initialize size, owner and flags field of every piece. |
+ // If FromAnyPointerAddress encounters a slot that belongs to one of |
// these smaller pieces it will treat it as a slot on a normal Page. |
MemoryChunk* inner = MemoryChunk::FromAddress( |
chunk->address() + Page::kPageSize); |
@@ -6401,8 +6401,9 @@ void Heap::FreeQueuedChunks() { |
chunk->address() + chunk->size() - 1); |
while (inner <= inner_last) { |
// Size of a large chunk is always a multiple of |
- // OS::AllocationAlignment() so there is always |
+ // MemoryChunk::kAlignment so there is always |
// enough space for a fake MemoryChunk header. |
+ inner->set_size(Page::kPageSize); |
inner->set_owner(lo_space()); |
inner->SetFlag(MemoryChunk::ABOUT_TO_BE_FREED); |
inner = MemoryChunk::FromAddress( |