V8 Project
|
#include <serialize.h>
Public Member Functions | |
Deserializer (SnapshotByteSource *source) | |
virtual | ~Deserializer () |
void | Deserialize (Isolate *isolate) |
void | DeserializePartial (Isolate *isolate, Object **root) |
void | set_reservation (int space_number, int reservation) |
void | FlushICacheForNewCodeObjects () |
void | SetAttachedObjects (Vector< Handle< Object > > *attached_objects) |
bool | deserializing_user_code () |
Private Member Functions | |
virtual void | VisitPointers (Object **start, Object **end) |
virtual void | VisitRuntimeEntry (RelocInfo *rinfo) |
void | RelinkAllocationSite (AllocationSite *site) |
void | ReadChunk (Object **start, Object **end, int space, Address object_address) |
void | ReadObject (int space_number, Object **write_back) |
Address | Allocate (int space_index, int size) |
HeapObject * | ProcessNewObjectFromSerializedCode (HeapObject *obj) |
Object * | ProcessBackRefInSerializedCode (Object *obj) |
HeapObject * | GetAddressFromEnd (int space) |
DISALLOW_COPY_AND_ASSIGN (Deserializer) | |
Private Attributes | |
Isolate * | isolate_ |
Vector< Handle< Object > > * | attached_objects_ |
SnapshotByteSource * | source_ |
Address | high_water_ [kNumberOfPreallocatedSpaces] |
int | reservations_ [kNumberOfSpaces] |
ExternalReferenceDecoder * | external_reference_decoder_ |
List< HeapObject * > | deserialized_large_objects_ |
Static Private Attributes | |
static const intptr_t | kUninitializedReservation = -1 |
Definition at line 241 of file serialize.h.
|
explicit |
Definition at line 595 of file serialize.cc.
References v8::internal::SerializerDeserializer::kNumberOfSpaces, kUninitializedReservation, and reservations_.
|
virtual |
Definition at line 687 of file serialize.cc.
References attached_objects_, external_reference_decoder_, and NULL.
Definition at line 820 of file serialize.cc.
References v8::internal::HeapObject::address(), v8::internal::LargeObjectSpace::AllocateRaw(), DCHECK, deserialized_large_objects_, v8::internal::Isolate::heap(), high_water_, isolate_, v8::internal::SerializerDeserializer::kNumberOfPreallocatedSpaces, v8::internal::LO_SPACE, v8::internal::Heap::lo_space(), size, source_, and v8::internal::AllocationResult::ToObjectChecked().
Referenced by ReadObject().
void v8::internal::Deserializer::Deserialize | ( | Isolate * | isolate | ) |
Definition at line 616 of file serialize.cc.
References v8::internal::Heap::allocation_sites_list(), v8::internal::HandleScopeImplementer::blocks(), DCHECK, DCHECK_EQ, external_reference_decoder_, v8::internal::ThreadManager::FirstThreadStateInUse(), FlushICacheForNewCodeObjects(), v8::internal::Smi::FromInt(), v8::internal::NativesCollection< type >::GetBuiltinsCount(), v8::internal::Isolate::handle_scope_implementer(), v8::internal::Isolate::heap(), high_water_, v8::internal::Heap::InitializeWeakObjectToCodeTable(), isolate_, v8::internal::Heap::IterateSmiRoots(), v8::internal::Heap::IterateStrongRoots(), v8::internal::Heap::IterateWeakRoots(), LOG_CODE_EVENT, NULL, v8::internal::Heap::RepairFreeListsAfterBoot(), reservations_, v8::internal::Heap::ReserveSpace(), v8::internal::Heap::set_allocation_sites_list(), v8::internal::Heap::set_array_buffers_list(), v8::internal::Heap::set_native_contexts_list(), v8::internal::Isolate::thread_manager(), v8::internal::VISIT_ALL, and v8::internal::VISIT_ONLY_STRONG.
Referenced by v8::internal::Isolate::Init().
Definition at line 661 of file serialize.cc.
References CHECK_EQ, v8::internal::Heap::code_space(), DCHECK, external_reference_decoder_, v8::internal::Isolate::heap(), high_water_, isolate_, v8::internal::SerializerDeserializer::kNumberOfSpaces, kUninitializedReservation, v8::internal::NEW_SPACE, NULL, reservations_, v8::internal::Heap::ReserveSpace(), and v8::internal::PagedSpace::top().
Referenced by v8::internal::CodeSerializer::Deserialize(), and v8::internal::Snapshot::NewContextFromSnapshot().
|
inline |
Definition at line 268 of file serialize.h.
References attached_objects_, and NULL.
Referenced by ReadObject().
|
private |
void v8::internal::Deserializer::FlushICacheForNewCodeObjects | ( | ) |
Definition at line 607 of file serialize.cc.
References v8::internal::MemoryChunk::area_end(), v8::internal::MemoryChunk::area_start(), v8::internal::Heap::code_space(), v8::internal::CpuFeatures::FlushICache(), v8::internal::Isolate::heap(), and isolate_.
Referenced by Deserialize(), and v8::internal::CodeSerializer::Deserialize().
|
inlineprivate |
Definition at line 297 of file serialize.h.
References DCHECK, deserialized_large_objects_, v8::internal::HeapObject::FromAddress(), high_water_, v8::internal::SerializerDeserializer::kNumberOfPreallocatedSpaces, v8::internal::kObjectAlignmentBits, v8::internal::LO_SPACE, source_, and space().
Definition at line 767 of file serialize.cc.
|
private |
Definition at line 749 of file serialize.cc.
References isolate_, v8::internal::Name::kEmptyHashField, and v8::internal::StringTable::LookupKey().
Referenced by ReadObject().
|
private |
Definition at line 837 of file serialize.cc.
References ALL_SPACES, v8::internal::Isolate::bootstrapper(), CASE_BODY, CASE_STATEMENT, v8::internal::CELL_SPACE, v8::internal::CODE_SPACE, COMMON_RAW_LENGTHS, DCHECK, DCHECK_EQ, FOUR_CASES, v8::internal::NativesCollection< type >::GetRawScriptSource(), v8::internal::Isolate::heap(), v8::internal::Heap::InNewSpace(), isolate_, v8::internal::SerializerDeserializer::kAttachedReference, v8::internal::SerializerDeserializer::kBackref, v8::internal::SerializerDeserializer::kBackrefWithSkip, v8::internal::SerializerDeserializer::kBuiltin, v8::internal::SerializerDeserializer::kConstantRepeat, v8::internal::SerializerDeserializer::kExternalReference, v8::internal::SerializerDeserializer::kFromCode, v8::internal::SerializerDeserializer::kHasSkipDistance, v8::internal::SerializerDeserializer::kInnerPointer, v8::internal::SerializerDeserializer::kMaxRepeats, v8::internal::SerializerDeserializer::kNativesStringResource, v8::internal::SerializerDeserializer::kNewObject, v8::internal::SerializerDeserializer::kNoSkipDistance, v8::internal::Heap::kOldSpaceRoots, v8::internal::SerializerDeserializer::kPartialSnapshotCache, v8::internal::SerializerDeserializer::kPlain, v8::internal::SerializerDeserializer::kRawData, v8::internal::SerializerDeserializer::kRepeat, v8::internal::SerializerDeserializer::kRootArray, v8::internal::SerializerDeserializer::kRootArrayConstants, v8::internal::SerializerDeserializer::kRootArrayNumberOfConstantEncodings, v8::internal::SerializerDeserializer::kSkip, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SerializerDeserializer::kSynchronize, v8::internal::Vector< T >::length(), v8::internal::NEW_SPACE, NULL, v8::internal::OLD_DATA_SPACE, v8::internal::PROPERTY_CELL_SPACE, RAW_CASE, v8::internal::SerializerDeserializer::RepeatsForCode(), v8::internal::SerializerDeserializer::RootArrayConstantFromByteCode(), v8::internal::Heap::roots_array_start(), SIXTEEN_CASES, size, source_, v8::internal::Vector< T >::start(), v8::internal::SerializerDeserializer::STATIC_ASSERT(), and UNREACHABLE.
Referenced by ReadObject(), and VisitPointers().
Definition at line 780 of file serialize.cc.
References Allocate(), v8::internal::CODE_SPACE, DCHECK, deserializing_user_code(), v8::internal::HeapObject::FromAddress(), v8::internal::Isolate::heap(), isolate_, v8::internal::kObjectAlignmentBits, v8::internal::kPointerSizeLog2, v8::internal::LO_SPACE, LOG, v8::internal::Heap::OnAllocationEvent(), ProcessNewObjectFromSerializedCode(), ReadChunk(), RelinkAllocationSite(), size, and source_.
|
private |
Definition at line 707 of file serialize.cc.
References v8::internal::Heap::allocation_sites_list(), v8::internal::Smi::FromInt(), v8::internal::Isolate::heap(), isolate_, and v8::internal::Heap::set_allocation_sites_list().
Referenced by ReadObject().
Definition at line 254 of file serialize.h.
References DCHECK, v8::internal::SerializerDeserializer::kNumberOfSpaces, and reservations_.
Referenced by v8::internal::CodeSerializer::Deserialize(), v8::internal::Snapshot::NewContextFromSnapshot(), and v8::internal::Snapshot::ReserveSpaceForLinkedInSnapshot().
|
inline |
Definition at line 264 of file serialize.h.
References attached_objects_.
Referenced by v8::internal::CodeSerializer::Deserialize().
Definition at line 700 of file serialize.cc.
References v8::internal::NEW_SPACE, NULL, and ReadChunk().
|
inlineprivatevirtual |
Definition at line 309 of file serialize.h.
Referenced by deserializing_user_code(), SetAttachedObjects(), and ~Deserializer().
|
private |
Definition at line 321 of file serialize.h.
Referenced by Allocate(), and GetAddressFromEnd().
|
private |
Definition at line 319 of file serialize.h.
Referenced by Deserialize(), DeserializePartial(), and ~Deserializer().
|
private |
Definition at line 314 of file serialize.h.
Referenced by Allocate(), Deserialize(), DeserializePartial(), and GetAddressFromEnd().
|
private |
Definition at line 306 of file serialize.h.
Referenced by Allocate(), Deserialize(), DeserializePartial(), FlushICacheForNewCodeObjects(), ProcessNewObjectFromSerializedCode(), ReadChunk(), ReadObject(), and RelinkAllocationSite().
|
staticprivate |
Definition at line 317 of file serialize.h.
Referenced by DeserializePartial(), and Deserializer().
|
private |
Definition at line 316 of file serialize.h.
Referenced by Deserialize(), DeserializePartial(), Deserializer(), and set_reservation().
|
private |
Definition at line 311 of file serialize.h.
Referenced by Allocate(), GetAddressFromEnd(), ReadChunk(), and ReadObject().