Chromium Code Reviews| Index: src/snapshot/deserializer.cc |
| diff --git a/src/snapshot/deserializer.cc b/src/snapshot/deserializer.cc |
| index 288308776663a389b968e8aca56f09fed65da150..38f41caa2727d77d33daf1d217d04a225bc3b097 100644 |
| --- a/src/snapshot/deserializer.cc |
| +++ b/src/snapshot/deserializer.cc |
| @@ -54,6 +54,14 @@ void Deserializer::FlushICacheForNewCodeObjectsAndRecordEmbeddedObjects() { |
| } |
| } |
| +void Deserializer::RecordWritesForLargeObjects() { |
| + Heap* heap = isolate_->heap(); |
| + if (!heap->incremental_marking()->black_allocation()) return; |
| + for (HeapObject* object : deserialized_large_objects_) { |
| + heap->incremental_marking()->IterateBlackObject(object); |
| + } |
| +} |
| + |
| bool Deserializer::ReserveSpace() { |
| #ifdef DEBUG |
| for (int i = NEW_SPACE; i < kNumberOfSpaces; ++i) { |
| @@ -171,6 +179,7 @@ MaybeHandle<HeapObject> Deserializer::DeserializeObject(Isolate* isolate) { |
| VisitRootPointer(Root::kPartialSnapshotCache, &root); |
| DeserializeDeferredObjects(); |
| FlushICacheForNewCodeObjectsAndRecordEmbeddedObjects(); |
| + RecordWritesForLargeObjects(); |
|
Hannes Payer (out of office)
2017/05/09 21:19:51
Ideally, we would move this one into RegisterReser
Jakob Kummerow
2017/05/10 11:09:07
Done.
|
| result = Handle<HeapObject>(HeapObject::cast(root)); |
| isolate->heap()->RegisterReservationsForBlackAllocation(reservations_); |
|
Hannes Payer (out of office)
2017/05/09 21:19:51
I guess that means we never have reservations for
Jakob Kummerow
2017/05/10 11:09:07
Correct; LO space doesn't use reservations (becaus
|
| } |