| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_SNAPSHOT_SERIALIZER_H_ | 5 #ifndef V8_SNAPSHOT_SERIALIZER_H_ |
| 6 #define V8_SNAPSHOT_SERIALIZER_H_ | 6 #define V8_SNAPSHOT_SERIALIZER_H_ |
| 7 | 7 |
| 8 #include "src/isolate.h" | 8 #include "src/isolate.h" |
| 9 #include "src/log.h" | 9 #include "src/log.h" |
| 10 #include "src/objects.h" | 10 #include "src/objects.h" |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 if (skip != 0) { | 183 if (skip != 0) { |
| 184 sink_.Put(kSkip, "SkipFromSerializeObject"); | 184 sink_.Put(kSkip, "SkipFromSerializeObject"); |
| 185 sink_.PutInt(skip, "SkipDistanceFromSerializeObject"); | 185 sink_.PutInt(skip, "SkipDistanceFromSerializeObject"); |
| 186 } | 186 } |
| 187 } | 187 } |
| 188 | 188 |
| 189 bool BackReferenceIsAlreadyAllocated(SerializerReference back_reference); | 189 bool BackReferenceIsAlreadyAllocated(SerializerReference back_reference); |
| 190 | 190 |
| 191 // This will return the space for an object. | 191 // This will return the space for an object. |
| 192 SerializerReference AllocateLargeObject(int size); | 192 SerializerReference AllocateLargeObject(int size); |
| 193 SerializerReference AllocateMap(); |
| 193 SerializerReference Allocate(AllocationSpace space, int size); | 194 SerializerReference Allocate(AllocationSpace space, int size); |
| 194 int EncodeExternalReference(Address addr) { | 195 int EncodeExternalReference(Address addr) { |
| 195 return external_reference_encoder_.Encode(addr); | 196 return external_reference_encoder_.Encode(addr); |
| 196 } | 197 } |
| 197 | 198 |
| 198 bool HasNotExceededFirstPageOfEachSpace(); | 199 bool HasNotExceededFirstPageOfEachSpace(); |
| 199 | 200 |
| 200 // GetInt reads 4 bytes at once, requiring padding at the end. | 201 // GetInt reads 4 bytes at once, requiring padding at the end. |
| 201 void Pad(); | 202 void Pad(); |
| 202 | 203 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 | 239 |
| 239 private: | 240 private: |
| 240 CodeAddressMap* code_address_map_; | 241 CodeAddressMap* code_address_map_; |
| 241 // Objects from the same space are put into chunks for bulk-allocation | 242 // Objects from the same space are put into chunks for bulk-allocation |
| 242 // when deserializing. We have to make sure that each chunk fits into a | 243 // when deserializing. We have to make sure that each chunk fits into a |
| 243 // page. So we track the chunk size in pending_chunk_ of a space, but | 244 // page. So we track the chunk size in pending_chunk_ of a space, but |
| 244 // when it exceeds a page, we complete the current chunk and start a new one. | 245 // when it exceeds a page, we complete the current chunk and start a new one. |
| 245 uint32_t pending_chunk_[kNumberOfPreallocatedSpaces]; | 246 uint32_t pending_chunk_[kNumberOfPreallocatedSpaces]; |
| 246 List<uint32_t> completed_chunks_[kNumberOfPreallocatedSpaces]; | 247 List<uint32_t> completed_chunks_[kNumberOfPreallocatedSpaces]; |
| 247 uint32_t max_chunk_size_[kNumberOfPreallocatedSpaces]; | 248 uint32_t max_chunk_size_[kNumberOfPreallocatedSpaces]; |
| 249 // Number of maps that we need to allocate. |
| 250 uint32_t num_maps_; |
| 248 | 251 |
| 249 // We map serialized large objects to indexes for back-referencing. | 252 // We map serialized large objects to indexes for back-referencing. |
| 250 uint32_t large_objects_total_size_; | 253 uint32_t large_objects_total_size_; |
| 251 uint32_t seen_large_objects_index_; | 254 uint32_t seen_large_objects_index_; |
| 252 | 255 |
| 253 List<byte> code_buffer_; | 256 List<byte> code_buffer_; |
| 254 | 257 |
| 255 // To handle stack overflow. | 258 // To handle stack overflow. |
| 256 List<HeapObject*> deferred_objects_; | 259 List<HeapObject*> deferred_objects_; |
| 257 | 260 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 SnapshotByteSink* sink_; | 323 SnapshotByteSink* sink_; |
| 321 int reference_representation_; | 324 int reference_representation_; |
| 322 int bytes_processed_so_far_; | 325 int bytes_processed_so_far_; |
| 323 bool code_has_been_output_; | 326 bool code_has_been_output_; |
| 324 }; | 327 }; |
| 325 | 328 |
| 326 } // namespace internal | 329 } // namespace internal |
| 327 } // namespace v8 | 330 } // namespace v8 |
| 328 | 331 |
| 329 #endif // V8_SNAPSHOT_SERIALIZER_H_ | 332 #endif // V8_SNAPSHOT_SERIALIZER_H_ |
| OLD | NEW |