V8 Project
|
#include <serialize.h>
Public Member Functions | |
ObjectSerializer (Serializer *serializer, Object *o, SnapshotByteSink *sink, HowToCode how_to_code, WhereToPoint where_to_point) | |
void | Serialize () |
void | VisitPointers (Object **start, Object **end) |
void | VisitEmbeddedPointer (RelocInfo *target) |
void | VisitExternalReference (Address *p) |
void | VisitExternalReference (RelocInfo *rinfo) |
void | VisitCodeTarget (RelocInfo *target) |
void | VisitCodeEntry (Address entry_address) |
void | VisitCell (RelocInfo *rinfo) |
void | VisitRuntimeEntry (RelocInfo *reloc) |
void | VisitExternalOneByteString (v8::String::ExternalOneByteStringResource **resource) |
void | VisitExternalTwoByteString (v8::String::ExternalStringResource **resource) |
Private Types | |
enum | ReturnSkip { kCanReturnSkipInsteadOfSkipping , kIgnoringReturn } |
Private Member Functions | |
int | OutputRawData (Address up_to, ReturnSkip return_skip=kIgnoringReturn) |
Private Attributes | |
Serializer * | serializer_ |
HeapObject * | object_ |
SnapshotByteSink * | sink_ |
int | reference_representation_ |
int | bytes_processed_so_far_ |
bool | code_object_ |
bool | code_has_been_output_ |
Definition at line 409 of file serialize.h.
Enumerator | |
---|---|
kCanReturnSkipInsteadOfSkipping | |
kIgnoringReturn |
Definition at line 442 of file serialize.h.
|
inline |
Definition at line 411 of file serialize.h.
|
private |
Definition at line 1726 of file serialize.cc.
References v8::internal::HeapObject::address(), v8::internal::CloneCodeObject(), COMMON_RAW_LENGTHS, DCHECK, v8::internal::SerializerDeserializer::kRawData, v8::internal::SerializerDeserializer::kSkip, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), v8::internal::SnapshotByteSink::PutSection(), RAW_CASE, v8::internal::Serializer::sink_, v8::internal::Code::WipeOutHeader(), and v8::internal::WipeOutRelocations().
Referenced by Serialize().
void v8::internal::Serializer::ObjectSerializer::Serialize | ( | ) |
Definition at line 1517 of file serialize.cc.
References v8::internal::SerializationAddressMapper::AddMapping(), v8::internal::HeapObject::address(), v8::internal::Serializer::address_mapper(), v8::internal::Serializer::Allocate(), v8::internal::Serializer::AllocateLargeObject(), bytes_processed_so_far_, CHECK_EQ, v8::internal::Serializer::code_address_map_, v8::internal::EXECUTABLE, v8::internal::Map::instance_type(), v8::internal::Serializer::isolate_, v8::internal::HeapObject::IterateBody(), v8::internal::SerializerDeserializer::kNewObject, v8::internal::kObjectAlignmentBits, v8::internal::SerializerDeserializer::kPlain, v8::internal::kPointerSize, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::LO_SPACE, LOG, v8::internal::CodeAddressMap::Lookup(), v8::internal::HeapObject::map(), v8::internal::NOT_EXECUTABLE, object_, OutputRawData(), v8::internal::SnapshotByteSink::Position(), v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), reference_representation_, v8::internal::Serializer::SerializeObject(), serializer_, sink_, size, v8::internal::HeapObject::Size(), space(), and v8::internal::Serializer::SpaceOfObject().
Referenced by v8::internal::CodeSerializer::SerializeHeapObject(), v8::internal::PartialSerializer::SerializeObject(), and v8::internal::StartupSerializer::SerializeObject().
void v8::internal::Serializer::ObjectSerializer::VisitCell | ( | RelocInfo * | rinfo | ) |
Definition at line 1669 of file serialize.cc.
References v8::internal::RelocInfo::IsInConstantPool(), v8::internal::SerializerDeserializer::kInnerPointer, v8::internal::SerializerDeserializer::kPlain, v8::internal::kPointerSize, and v8::internal::RelocInfo::pc().
void v8::internal::Serializer::ObjectSerializer::VisitCodeEntry | ( | Address | entry_address | ) |
Definition at line 1661 of file serialize.cc.
References v8::internal::Code::GetObjectFromEntryAddress(), v8::internal::SerializerDeserializer::kInnerPointer, v8::internal::SerializerDeserializer::kPlain, and v8::internal::kPointerSize.
void v8::internal::Serializer::ObjectSerializer::VisitCodeTarget | ( | RelocInfo * | target | ) |
Definition at line 1649 of file serialize.cc.
References v8::internal::Code::GetCodeFromTargetAddress(), v8::internal::RelocInfo::IsInConstantPool(), v8::internal::SerializerDeserializer::kFromCode, and v8::internal::SerializerDeserializer::kInnerPointer.
void v8::internal::Serializer::ObjectSerializer::VisitEmbeddedPointer | ( | RelocInfo * | target | ) |
Definition at line 1601 of file serialize.cc.
References v8::internal::RelocInfo::IsCodedSpecially(), v8::internal::RelocInfo::IsInConstantPool(), v8::internal::SerializerDeserializer::kFromCode, v8::internal::SerializerDeserializer::kPlain, and v8::internal::SerializerDeserializer::kStartOfObject.
void v8::internal::Serializer::ObjectSerializer::VisitExternalOneByteString | ( | v8::String::ExternalOneByteStringResource ** | resource | ) |
Definition at line 1680 of file serialize.cc.
References v8::internal::NativesCollection< type >::GetBuiltinsCount(), v8::internal::SerializerDeserializer::kNativesStringResource, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutSection(), v8::internal::Serializer::sink_, and UNREACHABLE.
void v8::internal::Serializer::ObjectSerializer::VisitExternalReference | ( | Address * | p | ) |
Definition at line 1614 of file serialize.cc.
References v8::internal::SerializerDeserializer::kExternalReference, v8::internal::SerializerDeserializer::kPlain, v8::internal::kPointerSize, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), and v8::internal::Serializer::sink_.
void v8::internal::Serializer::ObjectSerializer::VisitExternalReference | ( | RelocInfo * | rinfo | ) |
Definition at line 1625 of file serialize.cc.
References v8::internal::RelocInfo::IsCodedSpecially(), v8::internal::SerializerDeserializer::kExternalReference, v8::internal::SerializerDeserializer::kFromCode, v8::internal::SerializerDeserializer::kPlain, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), and v8::internal::Serializer::sink_.
|
inline |
Definition at line 1559 of file serialize.cc.
References v8::internal::SerializerDeserializer::CodeForRepeats(), DCHECK, v8::internal::Serializer::kInvalidRootIndex, v8::internal::SerializerDeserializer::kMaxRepeats, v8::internal::SerializerDeserializer::kPlain, v8::internal::kPointerSize, v8::internal::SerializerDeserializer::kRepeat, v8::internal::SerializerDeserializer::kRootArrayNumberOfConstantEncodings, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), and v8::internal::Serializer::sink_.
void v8::internal::Serializer::ObjectSerializer::VisitRuntimeEntry | ( | RelocInfo * | reloc | ) |
Definition at line 1637 of file serialize.cc.
References v8::internal::RelocInfo::IsCodedSpecially(), v8::internal::SerializerDeserializer::kExternalReference, v8::internal::SerializerDeserializer::kFromCode, v8::internal::SerializerDeserializer::kPlain, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), and v8::internal::Serializer::sink_.
|
private |
Definition at line 453 of file serialize.h.
Referenced by Serialize().
|
private |
Definition at line 455 of file serialize.h.
|
private |
Definition at line 454 of file serialize.h.
|
private |
Definition at line 450 of file serialize.h.
Referenced by Serialize().
|
private |
Definition at line 452 of file serialize.h.
Referenced by Serialize().
|
private |
Definition at line 449 of file serialize.h.
Referenced by Serialize().
|
private |
Definition at line 451 of file serialize.h.
Referenced by Serialize().