Chromium Code Reviews| Index: src/snapshot/serializer.cc | 
| diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc | 
| index 94124a789d24a759017a200985202c7834fd3901..9ccfaac3f734d537df21255a29c4cadb9afa3e22 100644 | 
| --- a/src/snapshot/serializer.cc | 
| +++ b/src/snapshot/serializer.cc | 
| @@ -96,20 +96,10 @@ void Serializer::SerializeDeferredObjects() { | 
| sink_->Put(kSynchronize, "Finished with deferred objects"); | 
| } | 
| -bool Serializer::ShouldBeSkipped(Object** current) { | 
| - Object** roots = isolate()->heap()->roots_array_start(); | 
| 
 
Michael Starzinger
2016/03/17 12:27:29
Woot! I love this, this was one of the last remain
 
 | 
| - return current == &roots[Heap::kStoreBufferTopRootIndex] || | 
| - current == &roots[Heap::kStackLimitRootIndex] || | 
| - current == &roots[Heap::kRealStackLimitRootIndex]; | 
| -} | 
| - | 
| void Serializer::VisitPointers(Object** start, Object** end) { | 
| for (Object** current = start; current < end; current++) { | 
| if ((*current)->IsSmi()) { | 
| - sink_->Put(kOnePointerRawData, "Smi"); | 
| - for (int i = 0; i < kPointerSize; i++) { | 
| - sink_->Put(reinterpret_cast<byte*>(current)[i], "Byte"); | 
| - } | 
| + PutSmi(Smi::cast(*current)); | 
| } else { | 
| SerializeObject(HeapObject::cast(*current), kPlain, kStartOfObject, 0); | 
| } | 
| @@ -240,6 +230,12 @@ void Serializer::PutRoot(int root_index, HeapObject* object, | 
| } | 
| } | 
| +void Serializer::PutSmi(Smi* smi) { | 
| + sink_->Put(kOnePointerRawData, "Smi"); | 
| + byte* bytes = reinterpret_cast<byte*>(&smi); | 
| + for (int i = 0; i < kPointerSize; i++) sink_->Put(bytes[i], "Byte"); | 
| +} | 
| + | 
| void Serializer::PutBackReference(HeapObject* object, BackReference reference) { | 
| DCHECK(BackReferenceIsAlreadyAllocated(reference)); | 
| sink_->PutInt(reference.reference(), "BackRefValue"); | 
| @@ -308,6 +304,13 @@ Code* Serializer::CopyCode(Code* code) { | 
| return Code::cast(HeapObject::FromAddress(&code_buffer_.first())); | 
| } | 
| +bool Serializer::HasNotExceededFirstPageOfEachSpace() { | 
| + for (int i = 0; i < kNumberOfPreallocatedSpaces; i++) { | 
| + if (!completed_chunks_[i].is_empty()) return false; | 
| + } | 
| + return true; | 
| +} | 
| + | 
| void Serializer::ObjectSerializer::SerializePrologue(AllocationSpace space, | 
| int size, Map* map) { | 
| if (serializer_->code_address_map_) { |