| Index: src/store-buffer.cc
|
| diff --git a/src/store-buffer.cc b/src/store-buffer.cc
|
| index a483dd469a6a4be196efabe7b60c8bc943689d93..da3bfd41f2e5d056cfd979a318179ba95245fa56 100644
|
| --- a/src/store-buffer.cc
|
| +++ b/src/store-buffer.cc
|
| @@ -414,9 +414,12 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback callback) {
|
| heap_->IteratePointersToNewSpace(heap_, start, object_end, callback);
|
| } else {
|
| Page* page = reinterpret_cast<Page*>(chunk);
|
| + PagedSpace* owner = reinterpret_cast<PagedSpace*>(page->owner());
|
| heap_->IteratePointersOnPage(
|
| - reinterpret_cast<PagedSpace*>(page->owner()),
|
| - &Heap::IteratePointersToNewSpace,
|
| + owner,
|
| + (owner == heap_->map_space() ?
|
| + &Heap::IteratePointersFromMapsToNewSpace :
|
| + &Heap::IteratePointersToNewSpace),
|
| callback,
|
| page);
|
| }
|
|
|