![]() |
v8
3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
|
#include <serialize.h>
Data Structures | |
class | ObjectSerializer |
Public Member Functions | |
Serializer (SnapshotByteSink *sink) | |
~Serializer () | |
void | VisitPointers (Object **start, Object **end) |
int | CurrentAllocationAddress (int space) |
SerializationAddressMapper * | address_mapper () |
void | PutRoot (int index, HeapObject *object, HowToCode how, WhereToPoint where) |
Static Public Member Functions | |
static void | Enable () |
static void | Disable () |
static void | TooLateToEnableNow () |
static bool | enabled () |
![]() | |
static void | Iterate (ObjectVisitor *visitor) |
static void | SetSnapshotCacheSize (int size) |
Protected Member Functions | |
int | RootIndex (HeapObject *heap_object, HowToCode from) |
virtual bool | ShouldBeInThePartialSnapshotCache (HeapObject *o)=0 |
intptr_t | root_index_wave_front () |
void | set_root_index_wave_front (intptr_t value) |
virtual void | SerializeObject (Object *o, HowToCode how_to_code, WhereToPoint where_to_point)=0 |
void | SerializeReferenceToPreviousObject (int space, int address, HowToCode how_to_code, WhereToPoint where_to_point) |
void | InitializeAllocators () |
int | Allocate (int space, int size, bool *new_page_started) |
int | EncodeExternalReference (Address addr) |
int | SpaceAreaSize (int space) |
Static Protected Member Functions | |
static int | SpaceOfObject (HeapObject *object) |
static int | SpaceOfAlreadySerializedObject (HeapObject *object) |
![]() | |
static int | CodeForRepeats (int repeats) |
static int | RepeatsForCode (int byte_code) |
static int | RootArrayConstantFromByteCode (int byte_code) |
static bool | SpaceIsLarge (int space) |
static bool | SpaceIsPaged (int space) |
Protected Attributes | |
Isolate * | isolate_ |
int | fullness_ [LAST_SPACE+1] |
SnapshotByteSink * | sink_ |
int | current_root_index_ |
ExternalReferenceEncoder * | external_reference_encoder_ |
int | large_object_total_ |
SerializationAddressMapper | address_mapper_ |
intptr_t | root_index_wave_front_ |
Static Protected Attributes | |
static const int | kInvalidRootIndex = -1 |
static bool | serialization_enabled_ = false |
static bool | too_late_to_enable_now_ = false |
![]() | |
static const int | kRawData = 0x30 |
static const int | kSynchronize = 0x70 |
static const int | kNativesStringResource = 0x71 |
static const int | kNewPage = 0x72 |
static const int | kRepeat = 0x73 |
static const int | kConstantRepeat = 0x74 |
static const int | kMaxRepeats = 0x7f - 0x73 |
static const int | kRootArrayLowConstants = 0xb0 |
static const int | kRootArrayHighConstants = 0xf0 |
static const int | kRootArrayNumberOfConstantEncodings = 0x20 |
static const int | kRootArrayNumberOfLowConstantEncodings = 0x10 |
static const int | kLargeData = LAST_SPACE |
static const int | kLargeCode = kLargeData + 1 |
static const int | kLargeFixedArray = kLargeCode + 1 |
static const int | kNumberOfSpaces = kLargeFixedArray + 1 |
static const int | kAnyOldSpace = -1 |
static const int | kSpaceMask = 15 |
Friends | |
class | ObjectSerializer |
class | Deserializer |
Additional Inherited Members | |
![]() | |
enum | Where { kNewObject = 0, kRootArray = 0x9, kPartialSnapshotCache = 0xa, kExternalReference = 0xb, kSkip = 0xc, kBackref = 0x10, kFromStart = 0x20, kPointedToMask = 0x3f } |
enum | HowToCode { kPlain = 0, kFromCode = 0x40, kHowToCodeMask = 0x40 } |
enum | WhereToPoint { kStartOfObject = 0, kFirstInstruction = 0x80, kWhereToPointMask = 0x80 } |
Definition at line 457 of file serialize.h.
|
explicit |
Definition at line 1115 of file serialize.cc.
References ASSERT, Serializer::fullness_, Isolate::IsDefaultIsolate(), Serializer::isolate_, and v8::internal::LAST_SPACE.
~Serializer | ( | ) |
Definition at line 1131 of file serialize.cc.
References Serializer::external_reference_encoder_.
|
inline |
Definition at line 481 of file serialize.h.
References Serializer::address_mapper_.
Referenced by Serializer::ObjectSerializer::Serialize(), and PartialSerializer::SerializeObject().
|
protected |
Definition at line 1665 of file serialize.cc.
References CHECK, Serializer::fullness_, v8::internal::IsPowerOf2(), SerializerDeserializer::kNumberOfSpaces, Page::kPageSize, Serializer::large_object_total_, v8::internal::LO_SPACE, v8::internal::RoundUp(), Serializer::SpaceAreaSize(), SerializerDeserializer::SpaceIsLarge(), and SerializerDeserializer::SpaceIsPaged().
Referenced by Serializer::ObjectSerializer::Serialize().
|
inline |
Definition at line 464 of file serialize.h.
References Serializer::fullness_, Serializer::large_object_total_, and SerializerDeserializer::SpaceIsLarge().
Referenced by Serializer::SerializeReferenceToPreviousObject(), and TEST().
|
inlinestatic |
Definition at line 476 of file serialize.h.
References Serializer::serialization_enabled_.
|
inlinestatic |
Definition at line 469 of file serialize.h.
References ASSERT, Serializer::serialization_enabled_, and Serializer::too_late_to_enable_now_.
|
inlinestatic |
Definition at line 480 of file serialize.h.
References Serializer::serialization_enabled_.
Referenced by Logger::CodeCreateEvent(), Logger::CodeDeleteEvent(), Logger::CodeMoveEvent(), Heap::IdleNotification(), MarkCompactCollector::Prepare(), Logger::RegExpCodeCreateEvent(), Logger::SnapshotPositionEvent(), SharedFunctionInfo::StartInobjectSlackTracking(), and IncrementalMarking::WorthActivating().
|
inlineprotected |
Definition at line 555 of file serialize.h.
References ExternalReferenceEncoder::Encode(), and Serializer::external_reference_encoder_.
|
protected |
void PutRoot | ( | int | index, |
HeapObject * | object, | ||
SerializerDeserializer::HowToCode | how_to_code, | ||
SerializerDeserializer::WhereToPoint | where_to_point | ||
) |
Definition at line 1350 of file serialize.cc.
References HEAP, SerializerDeserializer::kPlain, SerializerDeserializer::kRootArray, SerializerDeserializer::kRootArrayHighConstants, SerializerDeserializer::kRootArrayLowConstants, SerializerDeserializer::kRootArrayNumberOfConstantEncodings, SerializerDeserializer::kRootArrayNumberOfLowConstantEncodings, SerializerDeserializer::kStartOfObject, SnapshotByteSink::Put(), SnapshotByteSink::PutInt(), and Serializer::sink_.
Referenced by PartialSerializer::SerializeObject(), and StartupSerializer::SerializeObject().
|
inlineprotected |
Definition at line 490 of file serialize.h.
References Serializer::root_index_wave_front_.
|
protected |
Definition at line 1246 of file serialize.cc.
References HEAP, Heap::InNewSpace(), SerializerDeserializer::kFromCode, Serializer::kInvalidRootIndex, Serializer::root_index_wave_front_, and Heap::roots_array_start().
Referenced by PartialSerializer::SerializeObject(), and StartupSerializer::SerializeObject().
|
protectedpure virtual |
Implemented in StartupSerializer, and PartialSerializer.
Referenced by Serializer::ObjectSerializer::Serialize(), and Serializer::VisitPointers().
|
protected |
Definition at line 1272 of file serialize.cc.
References Serializer::CurrentAllocationAddress(), SerializerDeserializer::kBackref, SerializerDeserializer::kFromStart, v8::internal::kObjectAlignmentBits, v8::internal::kPageSizeBits, v8::internal::NEW_SPACE, SnapshotByteSink::Put(), SnapshotByteSink::PutInt(), Serializer::sink_, SerializerDeserializer::SpaceIsLarge(), and SerializerDeserializer::SpaceIsPaged().
Referenced by PartialSerializer::SerializeObject(), and StartupSerializer::SerializeObject().
|
inlineprotected |
Definition at line 491 of file serialize.h.
References ASSERT, and Serializer::root_index_wave_front_.
Referenced by PartialSerializer::PartialSerializer().
|
protectedpure virtual |
Implemented in PartialSerializer.
|
protected |
Definition at line 1699 of file serialize.cc.
References v8::internal::CODE_SPACE, MemoryAllocator::CodePageAreaSize(), Serializer::isolate_, MemoryChunk::kObjectStartOffset, Page::kPageSize, and Isolate::memory_allocator().
Referenced by Serializer::Allocate().
|
staticprotected |
Definition at line 1653 of file serialize.cc.
References v8::internal::FIRST_SPACE, HEAP, v8::internal::LAST_SPACE, and UNREACHABLE.
Referenced by PartialSerializer::SerializeObject(), and StartupSerializer::SerializeObject().
|
staticprotected |
Definition at line 1632 of file serialize.cc.
References v8::internal::FIRST_SPACE, HEAP, SerializerDeserializer::kLargeCode, SerializerDeserializer::kLargeData, SerializerDeserializer::kLargeFixedArray, v8::internal::LAST_SPACE, v8::internal::LO_SPACE, and UNREACHABLE.
Referenced by Serializer::ObjectSerializer::Serialize().
|
inlinestatic |
Definition at line 479 of file serialize.h.
References Serializer::too_late_to_enable_now_.
Definition at line 1171 of file serialize.cc.
References Isolate::heap(), SerializerDeserializer::kPlain, v8::internal::kPointerSize, SerializerDeserializer::kRawData, SerializerDeserializer::kSkip, SerializerDeserializer::kStartOfObject, v8::internal::Max(), SnapshotByteSink::Put(), SnapshotByteSink::PutInt(), Serializer::root_index_wave_front_, Heap::roots_array_start(), Serializer::SerializeObject(), Serializer::sink_, Heap::store_buffer(), and StoreBuffer::TopAddress().
|
friend |
Definition at line 578 of file serialize.h.
|
friend |
Definition at line 577 of file serialize.h.
|
protected |
Definition at line 574 of file serialize.h.
Referenced by Serializer::address_mapper(), PartialSerializer::SerializeObject(), and StartupSerializer::SerializeObject().
|
protected |
Definition at line 568 of file serialize.h.
|
protected |
Definition at line 569 of file serialize.h.
Referenced by Serializer::EncodeExternalReference(), and Serializer::~Serializer().
|
protected |
Definition at line 566 of file serialize.h.
Referenced by Serializer::Allocate(), Serializer::CurrentAllocationAddress(), and Serializer::Serializer().
|
protected |
Definition at line 561 of file serialize.h.
Referenced by Serializer::Serializer(), and Serializer::SpaceAreaSize().
|
staticprotected |
Definition at line 486 of file serialize.h.
Referenced by Serializer::RootIndex(), PartialSerializer::SerializeObject(), StartupSerializer::SerializeObject(), and Serializer::ObjectSerializer::VisitPointers().
|
protected |
Definition at line 573 of file serialize.h.
Referenced by Serializer::Allocate(), and Serializer::CurrentAllocationAddress().
|
protected |
Definition at line 575 of file serialize.h.
Referenced by Serializer::root_index_wave_front(), Serializer::RootIndex(), Serializer::set_root_index_wave_front(), and Serializer::VisitPointers().
|
staticprotected |
Definition at line 570 of file serialize.h.
Referenced by Serializer::Disable(), Serializer::Enable(), and Serializer::enabled().
|
protected |
Definition at line 567 of file serialize.h.
Referenced by Serializer::PutRoot(), PartialSerializer::SerializeObject(), StartupSerializer::SerializeObject(), Serializer::SerializeReferenceToPreviousObject(), StartupSerializer::SerializeWeakReferences(), Serializer::ObjectSerializer::VisitExternalAsciiString(), Serializer::ObjectSerializer::VisitExternalReference(), Serializer::ObjectSerializer::VisitExternalReferences(), Serializer::VisitPointers(), Serializer::ObjectSerializer::VisitPointers(), and Serializer::ObjectSerializer::VisitRuntimeEntry().
|
staticprotected |
Definition at line 572 of file serialize.h.
Referenced by Serializer::Enable(), and Serializer::TooLateToEnableNow().