V8 Project
v8::internal::Serializer Class Referenceabstract

#include <serialize.h>

+ Inheritance diagram for v8::internal::Serializer:
+ Collaboration diagram for v8::internal::Serializer:

Classes

class  ObjectSerializer
 

Public Member Functions

 Serializer (Isolate *isolate, SnapshotByteSink *sink)
 
 ~Serializer ()
 
void VisitPointers (Object **start, Object **end)
 
int CurrentAllocationAddress (int space) const
 
Isolateisolate () const
 
SerializationAddressMapperaddress_mapper ()
 
void PutRoot (int index, HeapObject *object, HowToCode how, WhereToPoint where, int skip)
 

Protected Member Functions

int RootIndex (HeapObject *heap_object, HowToCode from)
 
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, int skip)=0
 
void SerializeReferenceToPreviousObject (HeapObject *heap_object, HowToCode how_to_code, WhereToPoint where_to_point, int skip)
 
void InitializeAllocators ()
 
int AllocateLargeObject (int size)
 
int Allocate (int space, int size)
 
int EncodeExternalReference (Address addr)
 
int SpaceAreaSize (int space)
 
bool ShouldBeSkipped (Object **current)
 
void Pad ()
 
void InitializeCodeAddressMap ()
 
- Protected Member Functions inherited from v8::internal::SerializerDeserializer
 STATIC_ASSERT (kNumberOfSpaces<=kSpaceMask+1)
 

Static Protected Member Functions

static int SpaceOfObject (HeapObject *object)
 
- Static Protected Member Functions inherited from v8::internal::SerializerDeserializer
static int CodeForRepeats (int repeats)
 
static int RepeatsForCode (int byte_code)
 
static int RootArrayConstantFromByteCode (int byte_code)
 

Protected Attributes

Isolateisolate_
 
int fullness_ [kNumberOfSpaces]
 
SnapshotByteSinksink_
 
ExternalReferenceEncoderexternal_reference_encoder_
 
SerializationAddressMapper address_mapper_
 
intptr_t root_index_wave_front_
 

Static Protected Attributes

static const int kInvalidRootIndex = -1
 
- Static Protected Attributes inherited from v8::internal::SerializerDeserializer
static const int kRawData = 0x20
 
static const int kSynchronize = 0x70
 
static const int kNativesStringResource = 0x71
 
static const int kRepeat = 0x72
 
static const int kConstantRepeat = 0x73
 
static const int kMaxRepeats = 0x7f - 0x72
 
static const int kRootArrayConstants = 0xa0
 
static const int kRootArrayNumberOfConstantEncodings = 0x20
 
static const int kAnyOldSpace = -1
 
static const int kSpaceMask = 7
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (Serializer)
 

Private Attributes

CodeAddressMapcode_address_map_
 
int seen_large_objects_index_
 

Friends

class ObjectSerializer
 
class Deserializer
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::SerializerDeserializer
static void Iterate (Isolate *isolate, ObjectVisitor *visitor)
 
static int nop ()
 
- Static Public Attributes inherited from v8::internal::SerializerDeserializer
static const int kNumberOfPreallocatedSpaces = LO_SPACE
 
static const int kNumberOfSpaces = INVALID_SPACE
 
- Protected Types inherited from v8::internal::SerializerDeserializer
enum  Where {
  kNewObject = 0 , kRootArray = 0x9 , kPartialSnapshotCache = 0xa , kExternalReference = 0xb ,
  kSkip = 0xc , kBuiltin = 0xd , kAttachedReference = 0xe , kNop = 0xf ,
  kBackref = 0x10 , kBackrefWithSkip = 0x18 , kPointedToMask = 0x3f
}
 
enum  HowToCode { kPlain = 0 , kFromCode = 0x40 , kHowToCodeMask = 0x40 }
 
enum  WithSkip { kNoSkipDistance = 0 , kHasSkipDistance = 0x40 , kWithSkipMask = 0x40 }
 
enum  WhereToPoint { kStartOfObject = 0 , kInnerPointer = 0x80 , kWhereToPointMask = 0x80 }
 

Detailed Description

Definition at line 378 of file serialize.h.

Constructor & Destructor Documentation

◆ Serializer()

v8::internal::Serializer::Serializer ( Isolate isolate,
SnapshotByteSink sink 
)

Definition at line 1214 of file serialize.cc.

1215  : isolate_(isolate),
1216  sink_(sink),
1217  external_reference_encoder_(new ExternalReferenceEncoder(isolate)),
1221  // The serializer is meant to be used only to generate initial heap images
1222  // from a context in which there is only one isolate.
1223  for (int i = 0; i < kNumberOfSpaces; i++) fullness_[i] = 0;
1224 }
ExternalReferenceEncoder * external_reference_encoder_
Definition: serialize.h:486
int fullness_[kNumberOfSpaces]
Definition: serialize.h:484
intptr_t root_index_wave_front_
Definition: serialize.h:489
SnapshotByteSink * sink_
Definition: serialize.h:485
CodeAddressMap * code_address_map_
Definition: serialize.h:500
Isolate * isolate() const
Definition: serialize.h:390
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

References fullness_, and v8::internal::SerializerDeserializer::kNumberOfSpaces.

◆ ~Serializer()

v8::internal::Serializer::~Serializer ( )

Definition at line 1227 of file serialize.cc.

1227  {
1229  if (code_address_map_ != NULL) delete code_address_map_;
1230 }

References code_address_map_, external_reference_encoder_, and NULL.

Member Function Documentation

◆ address_mapper()

SerializationAddressMapper* v8::internal::Serializer::address_mapper ( )
inline

Definition at line 392 of file serialize.h.

392 { return &address_mapper_; }
SerializationAddressMapper address_mapper_
Definition: serialize.h:488

References address_mapper_.

Referenced by v8::internal::Serializer::ObjectSerializer::Serialize(), and v8::internal::PartialSerializer::SerializeObject().

+ Here is the caller graph for this function:

◆ Allocate()

int v8::internal::Serializer::Allocate ( int  space,
int  size 
)
protected

Definition at line 1804 of file serialize.cc.

1804  {
1806  int allocation_address = fullness_[space];
1807  fullness_[space] = allocation_address + size;
1808  return allocation_address;
1809 }
static const int kNumberOfPreallocatedSpaces
Definition: serialize.h:152
enable harmony numeric enable harmony object literal extensions Optimize object size
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi space(in MBytes)
#define CHECK(condition)
Definition: logging.h:36

References CHECK, fullness_, v8::internal::SerializerDeserializer::kNumberOfPreallocatedSpaces, size, and space().

Referenced by v8::internal::Serializer::ObjectSerializer::Serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AllocateLargeObject()

int v8::internal::Serializer::AllocateLargeObject ( int  size)
protected

Definition at line 1798 of file serialize.cc.

1798  {
1799  fullness_[LO_SPACE] += size;
1800  return seen_large_objects_index_++;
1801 }

References fullness_, v8::internal::LO_SPACE, seen_large_objects_index_, and size.

Referenced by v8::internal::Serializer::ObjectSerializer::Serialize().

+ Here is the caller graph for this function:

◆ CurrentAllocationAddress()

int v8::internal::Serializer::CurrentAllocationAddress ( int  space) const
inline

Definition at line 385 of file serialize.h.

385  {
387  return fullness_[space];
388  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, fullness_, v8::internal::SerializerDeserializer::kNumberOfSpaces, and space().

Referenced by SnapshotWriter::MaybeWriteStartupBlob(), SerializeReferenceToPreviousObject(), and SnapshotWriter::WriteSizeVar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

v8::internal::Serializer::DISALLOW_COPY_AND_ASSIGN ( Serializer  )
private

◆ EncodeExternalReference()

int v8::internal::Serializer::EncodeExternalReference ( Address  addr)
inlineprotected

Definition at line 471 of file serialize.h.

471  {
472  return external_reference_encoder_->Encode(addr);
473  }
uint32_t Encode(Address key) const
Definition: serialize.cc:430

References v8::internal::ExternalReferenceEncoder::Encode(), and external_reference_encoder_.

+ Here is the call graph for this function:

◆ InitializeAllocators()

void v8::internal::Serializer::InitializeAllocators ( )
protected

◆ InitializeCodeAddressMap()

void v8::internal::Serializer::InitializeCodeAddressMap ( )
protected

Definition at line 1830 of file serialize.cc.

1830  {
1832  code_address_map_ = new CodeAddressMap(isolate_);
1833 }
void InitializeLoggingAndCounters()
Definition: isolate.cc:1818

References code_address_map_, v8::internal::Isolate::InitializeLoggingAndCounters(), and isolate_.

Referenced by v8::internal::CodeSerializer::CodeSerializer(), v8::internal::PartialSerializer::PartialSerializer(), and v8::internal::StartupSerializer::StartupSerializer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isolate()

◆ Pad()

void v8::internal::Serializer::Pad ( )
protected

Definition at line 1821 of file serialize.cc.

1821  {
1822  // The non-branching GetInt will read up to 3 bytes too far, so we need
1823  // to pad the snapshot to make sure we don't read over the end.
1824  for (unsigned i = 0; i < sizeof(int32_t) - 1; i++) {
1825  sink_->Put(kNop, "Padding");
1826  }
1827 }
virtual void Put(byte b, const char *description)=0
int int32_t
Definition: unicode.cc:24

References v8::internal::SerializerDeserializer::kNop, v8::internal::SnapshotByteSink::Put(), and sink_.

Referenced by v8::internal::StartupSerializer::Serialize(), v8::internal::PartialSerializer::Serialize(), and v8::internal::StartupSerializer::SerializeWeakReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PutRoot()

void v8::internal::Serializer::PutRoot ( int  index,
HeapObject object,
SerializerDeserializer::HowToCode  how_to_code,
SerializerDeserializer::WhereToPoint  where_to_point,
int  skip 
)

Definition at line 1428 of file serialize.cc.

1432  {
1433  if (how_to_code == kPlain &&
1434  where_to_point == kStartOfObject &&
1435  root_index < kRootArrayNumberOfConstantEncodings &&
1436  !isolate()->heap()->InNewSpace(object)) {
1437  if (skip == 0) {
1438  sink_->Put(kRootArrayConstants + kNoSkipDistance + root_index,
1439  "RootConstant");
1440  } else {
1442  "RootConstant");
1443  sink_->PutInt(skip, "SkipInPutRoot");
1444  }
1445  } else {
1446  if (skip != 0) {
1447  sink_->Put(kSkip, "SkipFromPutRoot");
1448  sink_->PutInt(skip, "SkipFromPutRootDistance");
1449  }
1450  sink_->Put(kRootArray + how_to_code + where_to_point, "RootSerialization");
1451  sink_->PutInt(root_index, "root_index");
1452  }
1453 }
static const int kRootArrayNumberOfConstantEncodings
Definition: serialize.h:227
static const int kRootArrayConstants
Definition: serialize.h:225
void PutInt(uintptr_t integer, const char *description)

References isolate(), v8::internal::SerializerDeserializer::kHasSkipDistance, v8::internal::SerializerDeserializer::kNoSkipDistance, v8::internal::SerializerDeserializer::kPlain, v8::internal::SerializerDeserializer::kRootArray, v8::internal::SerializerDeserializer::kRootArrayConstants, v8::internal::SerializerDeserializer::kRootArrayNumberOfConstantEncodings, v8::internal::SerializerDeserializer::kSkip, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), and sink_.

Referenced by v8::internal::PartialSerializer::SerializeObject(), v8::internal::StartupSerializer::SerializeObject(), and v8::internal::CodeSerializer::SerializeObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ root_index_wave_front()

intptr_t v8::internal::Serializer::root_index_wave_front ( )
inlineprotected

Definition at line 403 of file serialize.h.

403 { return root_index_wave_front_; }

References root_index_wave_front_.

◆ RootIndex()

int v8::internal::Serializer::RootIndex ( HeapObject heap_object,
HowToCode  from 
)
protected

Definition at line 1336 of file serialize.cc.

1336  {
1337  Heap* heap = isolate()->heap();
1338  if (heap->InNewSpace(heap_object)) return kInvalidRootIndex;
1339  for (int i = 0; i < root_index_wave_front_; i++) {
1340  Object* root = heap->roots_array_start()[i];
1341  if (!root->IsSmi() && root == heap_object) {
1342  return i;
1343  }
1344  }
1345  return kInvalidRootIndex;
1346 }
static const int kInvalidRootIndex
Definition: serialize.h:400
kSerializedDataOffset Object
Definition: objects-inl.h:5322

References v8::internal::Isolate::heap(), v8::internal::Heap::InNewSpace(), isolate(), kInvalidRootIndex, root_index_wave_front_, and v8::internal::Heap::roots_array_start().

Referenced by v8::internal::PartialSerializer::SerializeObject(), v8::internal::StartupSerializer::SerializeObject(), and v8::internal::CodeSerializer::SerializeObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SerializeObject()

virtual void v8::internal::Serializer::SerializeObject ( Object o,
HowToCode  how_to_code,
WhereToPoint  where_to_point,
int  skip 
)
protectedpure virtual

Implemented in v8::internal::CodeSerializer, v8::internal::StartupSerializer, and v8::internal::PartialSerializer.

Referenced by v8::internal::Serializer::ObjectSerializer::Serialize(), and VisitPointers().

+ Here is the caller graph for this function:

◆ SerializeReferenceToPreviousObject()

void v8::internal::Serializer::SerializeReferenceToPreviousObject ( HeapObject heap_object,
HowToCode  how_to_code,
WhereToPoint  where_to_point,
int  skip 
)
protected

Definition at line 1353 of file serialize.cc.

1356  {
1357  int space = SpaceOfObject(heap_object);
1358 
1359  if (skip == 0) {
1360  sink_->Put(kBackref + how_to_code + where_to_point + space, "BackRefSer");
1361  } else {
1362  sink_->Put(kBackrefWithSkip + how_to_code + where_to_point + space,
1363  "BackRefSerWithSkip");
1364  sink_->PutInt(skip, "BackRefSkipDistance");
1365  }
1366 
1367  if (space == LO_SPACE) {
1368  int index = address_mapper_.MappedTo(heap_object);
1369  sink_->PutInt(index, "large object index");
1370  } else {
1371  int address = address_mapper_.MappedTo(heap_object);
1372  int offset = CurrentAllocationAddress(space) - address;
1373  // Shift out the bits that are always 0.
1374  offset >>= kObjectAlignmentBits;
1375  sink_->PutInt(offset, "offset");
1376  }
1377 }
static int SpaceOfObject(HeapObject *object)
Definition: serialize.cc:1785
int CurrentAllocationAddress(int space) const
Definition: serialize.h:385
const int kObjectAlignmentBits
Definition: globals.h:225

References address_mapper_, CurrentAllocationAddress(), v8::internal::SerializerDeserializer::kBackref, v8::internal::SerializerDeserializer::kBackrefWithSkip, v8::internal::kObjectAlignmentBits, v8::internal::LO_SPACE, v8::internal::SerializationAddressMapper::MappedTo(), v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), sink_, space(), and SpaceOfObject().

Referenced by v8::internal::PartialSerializer::SerializeObject(), v8::internal::StartupSerializer::SerializeObject(), and v8::internal::CodeSerializer::SerializeObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_root_index_wave_front()

void v8::internal::Serializer::set_root_index_wave_front ( intptr_t  value)
inlineprotected

Definition at line 404 of file serialize.h.

404  {
405  DCHECK(value >= root_index_wave_front_);
406  root_index_wave_front_ = value;
407  }

References DCHECK, and root_index_wave_front_.

Referenced by v8::internal::CodeSerializer::CodeSerializer(), and v8::internal::PartialSerializer::PartialSerializer().

+ Here is the caller graph for this function:

◆ ShouldBeSkipped()

bool v8::internal::Serializer::ShouldBeSkipped ( Object **  current)
protected

Definition at line 1254 of file serialize.cc.

1254  {
1255  Object** roots = isolate()->heap()->roots_array_start();
1256  return current == &roots[Heap::kStoreBufferTopRootIndex]
1257  || current == &roots[Heap::kStackLimitRootIndex]
1258  || current == &roots[Heap::kRealStackLimitRootIndex];
1259 }
Object ** roots_array_start()
Definition: heap.h:896

References v8::internal::Isolate::heap(), isolate(), and v8::internal::Heap::roots_array_start().

Referenced by VisitPointers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SpaceAreaSize()

int v8::internal::Serializer::SpaceAreaSize ( int  space)
protected

Definition at line 1812 of file serialize.cc.

1812  {
1813  if (space == CODE_SPACE) {
1815  } else {
1817  }
1818 }
MemoryAllocator * memory_allocator()
Definition: isolate.h:883
static int CodePageAreaSize()
Definition: spaces.h:1103
static const int kObjectStartOffset
Definition: spaces.h:550
static const int kPageSize
Definition: spaces.h:748

References v8::internal::CODE_SPACE, v8::internal::MemoryAllocator::CodePageAreaSize(), isolate_, v8::internal::MemoryChunk::kObjectStartOffset, v8::internal::Page::kPageSize, v8::internal::Isolate::memory_allocator(), and space().

+ Here is the call graph for this function:

◆ SpaceOfObject()

int v8::internal::Serializer::SpaceOfObject ( HeapObject object)
staticprotected

Definition at line 1785 of file serialize.cc.

1785  {
1786  for (int i = FIRST_SPACE; i <= LAST_SPACE; i++) {
1787  AllocationSpace s = static_cast<AllocationSpace>(i);
1788  if (object->GetHeap()->InSpace(object, s)) {
1790  return i;
1791  }
1792  }
1793  UNREACHABLE();
1794  return 0;
1795 }
#define UNREACHABLE()
Definition: logging.h:30

References DCHECK, v8::internal::FIRST_SPACE, v8::internal::HeapObject::GetHeap(), v8::internal::Heap::InSpace(), v8::internal::SerializerDeserializer::kNumberOfSpaces, v8::internal::LAST_SPACE, and UNREACHABLE.

Referenced by v8::internal::Serializer::ObjectSerializer::Serialize(), and SerializeReferenceToPreviousObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VisitPointers()

void v8::internal::Serializer::VisitPointers ( Object **  start,
Object **  end 
)

Definition at line 1262 of file serialize.cc.

1262  {
1263  Isolate* isolate = this->isolate();;
1264 
1265  for (Object** current = start; current < end; current++) {
1266  if (start == isolate->heap()->roots_array_start()) {
1268  Max(root_index_wave_front_, static_cast<intptr_t>(current - start));
1269  }
1270  if (ShouldBeSkipped(current)) {
1271  sink_->Put(kSkip, "Skip");
1272  sink_->PutInt(kPointerSize, "SkipOneWord");
1273  } else if ((*current)->IsSmi()) {
1274  sink_->Put(kRawData + 1, "Smi");
1275  for (int i = 0; i < kPointerSize; i++) {
1276  sink_->Put(reinterpret_cast<byte*>(current)[i], "Byte");
1277  }
1278  } else {
1279  SerializeObject(*current, kPlain, kStartOfObject, 0);
1280  }
1281  }
1282 }
virtual void SerializeObject(Object *o, HowToCode how_to_code, WhereToPoint where_to_point, int skip)=0
bool ShouldBeSkipped(Object **current)
Definition: serialize.cc:1254
const int kPointerSize
Definition: globals.h:129
static LifetimePosition Max(LifetimePosition a, LifetimePosition b)

References v8::internal::Isolate::heap(), isolate(), v8::internal::SerializerDeserializer::kPlain, v8::internal::kPointerSize, v8::internal::SerializerDeserializer::kRawData, v8::internal::SerializerDeserializer::kSkip, v8::internal::SerializerDeserializer::kStartOfObject, v8::internal::Max(), v8::internal::SnapshotByteSink::Put(), v8::internal::SnapshotByteSink::PutInt(), root_index_wave_front_, v8::internal::Heap::roots_array_start(), SerializeObject(), ShouldBeSkipped(), and sink_.

+ Here is the call graph for this function:

Friends And Related Function Documentation

◆ Deserializer

friend class Deserializer
friend

Definition at line 493 of file serialize.h.

◆ ObjectSerializer

friend class ObjectSerializer
friend

Definition at line 492 of file serialize.h.

Member Data Documentation

◆ address_mapper_

◆ code_address_map_

CodeAddressMap* v8::internal::Serializer::code_address_map_
private

◆ external_reference_encoder_

ExternalReferenceEncoder* v8::internal::Serializer::external_reference_encoder_
protected

Definition at line 486 of file serialize.h.

Referenced by EncodeExternalReference(), and ~Serializer().

◆ fullness_

int v8::internal::Serializer::fullness_[kNumberOfSpaces]
protected

Definition at line 484 of file serialize.h.

Referenced by Allocate(), AllocateLargeObject(), CurrentAllocationAddress(), and Serializer().

◆ isolate_

Isolate* v8::internal::Serializer::isolate_
protected

◆ kInvalidRootIndex

◆ root_index_wave_front_

intptr_t v8::internal::Serializer::root_index_wave_front_
protected

◆ seen_large_objects_index_

int v8::internal::Serializer::seen_large_objects_index_
private

Definition at line 502 of file serialize.h.

Referenced by AllocateLargeObject().

◆ sink_


The documentation for this class was generated from the following files: