Flutter Engine
The Flutter Engine
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dart::DeserializationCluster Class Referenceabstract
Inheritance diagram for dart::DeserializationCluster:
dart::ZoneAllocated dart::CanonicalSetDeserializationCluster< CanonicalFunctionTypeSet > dart::CanonicalSetDeserializationCluster< CanonicalStringSet > dart::CanonicalSetDeserializationCluster< CanonicalRecordTypeSet > dart::CanonicalSetDeserializationCluster< CanonicalTypeArgumentsSet > dart::CanonicalSetDeserializationCluster< CanonicalTypeSet, false > dart::CanonicalSetDeserializationCluster< CanonicalTypeParameterSet > dart::AbstractInstanceDeserializationCluster dart::CanonicalSetDeserializationCluster< SetType, kAllCanonicalObjectsAreIncludedIntoSet > dart::ClassDeserializationCluster dart::ClosureDataDeserializationCluster dart::CodeDeserializationCluster dart::CodeSourceMapDeserializationCluster dart::CompressedStackMapsDeserializationCluster dart::ContextDeserializationCluster dart::ContextScopeDeserializationCluster dart::DeltaEncodedTypedDataDeserializationCluster dart::ExceptionHandlersDeserializationCluster dart::ExternalTypedDataDeserializationCluster dart::FfiTrampolineDataDeserializationCluster dart::FieldDeserializationCluster dart::FunctionDeserializationCluster dart::GrowableObjectArrayDeserializationCluster dart::ICDataDeserializationCluster dart::KernelProgramInfoDeserializationCluster dart::LanguageErrorDeserializationCluster dart::LibraryDeserializationCluster dart::LibraryPrefixDeserializationCluster dart::LoadingUnitDeserializationCluster dart::MegamorphicCacheDeserializationCluster dart::NamespaceDeserializationCluster dart::ObjectPoolDeserializationCluster dart::PatchClassDeserializationCluster dart::PcDescriptorsDeserializationCluster dart::RegExpDeserializationCluster dart::ScriptDeserializationCluster dart::StackTraceDeserializationCluster dart::SubtypeTestCacheDeserializationCluster dart::TypeParametersDeserializationCluster dart::TypedDataDeserializationCluster dart::TypedDataViewDeserializationCluster dart::UnhandledExceptionDeserializationCluster dart::UnlinkedCallDeserializationCluster dart::WeakArrayDeserializationCluster dart::WeakPropertyDeserializationCluster

Public Member Functions

 DeserializationCluster (const char *name, bool is_canonical=false, bool is_immutable=false)
 
virtual ~DeserializationCluster ()
 
virtual void ReadAlloc (Deserializer *deserializer)=0
 
virtual void ReadFill (Deserializer *deserializer)=0
 
virtual void PostLoad (Deserializer *deserializer, const Array &refs)
 
const char * name () const
 
bool is_canonical () const
 
- Public Member Functions inherited from dart::ZoneAllocated
 ZoneAllocated ()
 
void * operator new (size_t size)
 
void * operator new (size_t size, Zone *zone)
 
void operator delete (void *pointer)
 

Protected Member Functions

void ReadAllocFixedSize (Deserializer *deserializer, intptr_t instance_size)
 

Protected Attributes

const char *const name_
 
const bool is_canonical_
 
const bool is_immutable_
 
intptr_t start_index_
 
intptr_t stop_index_
 

Detailed Description

Definition at line 217 of file app_snapshot.cc.

Constructor & Destructor Documentation

◆ DeserializationCluster()

dart::DeserializationCluster::DeserializationCluster ( const char *  name,
bool  is_canonical = false,
bool  is_immutable = false 
)
inlineexplicit

Definition at line 219 of file app_snapshot.cc.

◆ ~DeserializationCluster()

virtual dart::DeserializationCluster::~DeserializationCluster ( )
inlinevirtual

Definition at line 227 of file app_snapshot.cc.

227{}

Member Function Documentation

◆ is_canonical()

bool dart::DeserializationCluster::is_canonical ( ) const
inline

Definition at line 250 of file app_snapshot.cc.

250{ return is_canonical_; }

◆ name()

const char * dart::DeserializationCluster::name ( ) const
inline

Definition at line 249 of file app_snapshot.cc.

249{ return name_; }

◆ PostLoad()

virtual void dart::DeserializationCluster::PostLoad ( Deserializer deserializer,
const Array refs 
)
inlinevirtual

Reimplemented in dart::TypeArgumentsDeserializationCluster, dart::FunctionDeserializationCluster, dart::FieldDeserializationCluster, dart::KernelProgramInfoDeserializationCluster, dart::CodeDeserializationCluster, dart::ObjectPoolDeserializationCluster, dart::RODataDeserializationCluster, dart::TypeDeserializationCluster, dart::FunctionTypeDeserializationCluster, dart::RecordTypeDeserializationCluster, dart::TypeParameterDeserializationCluster, dart::TypedDataViewDeserializationCluster, and dart::StringDeserializationCluster.

Definition at line 238 of file app_snapshot.cc.

238 {
239 // We only need to worry about how canonical values are handled during
240 // deserialization if there may be multiple loading units, which only
241 // happens in the precompiled runtime.
242#if defined(DART_PRECOMPILED_RUNTIME)
243 if (is_canonical()) {
244 FATAL("%s needs canonicalization but doesn't define PostLoad", name());
245 }
246#endif
247 }
#define FATAL(error)

◆ ReadAlloc()

virtual void dart::DeserializationCluster::ReadAlloc ( Deserializer deserializer)
pure virtual

Implemented in dart::ClassDeserializationCluster, dart::TypeParametersDeserializationCluster, dart::TypeArgumentsDeserializationCluster, dart::PatchClassDeserializationCluster, dart::FunctionDeserializationCluster, dart::ClosureDataDeserializationCluster, dart::FfiTrampolineDataDeserializationCluster, dart::FieldDeserializationCluster, dart::ScriptDeserializationCluster, dart::LibraryDeserializationCluster, dart::NamespaceDeserializationCluster, dart::KernelProgramInfoDeserializationCluster, dart::CodeDeserializationCluster, dart::ObjectPoolDeserializationCluster, dart::PcDescriptorsDeserializationCluster, dart::CodeSourceMapDeserializationCluster, dart::CompressedStackMapsDeserializationCluster, dart::RODataDeserializationCluster, dart::ExceptionHandlersDeserializationCluster, dart::ContextDeserializationCluster, dart::ContextScopeDeserializationCluster, dart::UnlinkedCallDeserializationCluster, dart::ICDataDeserializationCluster, dart::MegamorphicCacheDeserializationCluster, dart::SubtypeTestCacheDeserializationCluster, dart::LoadingUnitDeserializationCluster, dart::LanguageErrorDeserializationCluster, dart::UnhandledExceptionDeserializationCluster, dart::InstanceDeserializationCluster, dart::LibraryPrefixDeserializationCluster, dart::TypeDeserializationCluster, dart::FunctionTypeDeserializationCluster, dart::RecordTypeDeserializationCluster, dart::TypeParameterDeserializationCluster, dart::ClosureDeserializationCluster, dart::MintDeserializationCluster, dart::DoubleDeserializationCluster, dart::Simd128DeserializationCluster, dart::GrowableObjectArrayDeserializationCluster, dart::RecordDeserializationCluster, dart::TypedDataDeserializationCluster, dart::TypedDataViewDeserializationCluster, dart::ExternalTypedDataDeserializationCluster, dart::DeltaEncodedTypedDataDeserializationCluster, dart::StackTraceDeserializationCluster, dart::RegExpDeserializationCluster, dart::WeakPropertyDeserializationCluster, dart::MapDeserializationCluster, dart::SetDeserializationCluster, dart::ArrayDeserializationCluster, dart::WeakArrayDeserializationCluster, and dart::StringDeserializationCluster.

◆ ReadAllocFixedSize()

DART_NOINLINE void dart::DeserializationCluster::ReadAllocFixedSize ( Deserializer deserializer,
intptr_t  instance_size 
)
protected

Definition at line 941 of file app_snapshot.cc.

942 {
943 start_index_ = d->next_index();
944 intptr_t count = d->ReadUnsigned();
945 for (intptr_t i = 0; i < count; i++) {
946 d->AssignRef(d->Allocate(instance_size));
947 }
948 stop_index_ = d->next_index();
949}
int count
Definition: FontMgrTest.cpp:50
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
Definition: main.cc:19

◆ ReadFill()

virtual void dart::DeserializationCluster::ReadFill ( Deserializer deserializer)
pure virtual

Implemented in dart::CodeDeserializationCluster, dart::ClassDeserializationCluster, dart::TypeParametersDeserializationCluster, dart::TypeArgumentsDeserializationCluster, dart::PatchClassDeserializationCluster, dart::FunctionDeserializationCluster, dart::ClosureDataDeserializationCluster, dart::FfiTrampolineDataDeserializationCluster, dart::FieldDeserializationCluster, dart::ScriptDeserializationCluster, dart::LibraryDeserializationCluster, dart::NamespaceDeserializationCluster, dart::KernelProgramInfoDeserializationCluster, dart::ObjectPoolDeserializationCluster, dart::PcDescriptorsDeserializationCluster, dart::CodeSourceMapDeserializationCluster, dart::CompressedStackMapsDeserializationCluster, dart::RODataDeserializationCluster, dart::ExceptionHandlersDeserializationCluster, dart::ContextDeserializationCluster, dart::ContextScopeDeserializationCluster, dart::UnlinkedCallDeserializationCluster, dart::ICDataDeserializationCluster, dart::MegamorphicCacheDeserializationCluster, dart::SubtypeTestCacheDeserializationCluster, dart::LoadingUnitDeserializationCluster, dart::LanguageErrorDeserializationCluster, dart::UnhandledExceptionDeserializationCluster, dart::InstanceDeserializationCluster, dart::LibraryPrefixDeserializationCluster, dart::TypeDeserializationCluster, dart::FunctionTypeDeserializationCluster, dart::RecordTypeDeserializationCluster, dart::TypeParameterDeserializationCluster, dart::ClosureDeserializationCluster, dart::MintDeserializationCluster, dart::DoubleDeserializationCluster, dart::Simd128DeserializationCluster, dart::GrowableObjectArrayDeserializationCluster, dart::RecordDeserializationCluster, dart::TypedDataDeserializationCluster, dart::TypedDataViewDeserializationCluster, dart::ExternalTypedDataDeserializationCluster, dart::DeltaEncodedTypedDataDeserializationCluster, dart::StackTraceDeserializationCluster, dart::RegExpDeserializationCluster, dart::WeakPropertyDeserializationCluster, dart::MapDeserializationCluster, dart::SetDeserializationCluster, dart::ArrayDeserializationCluster, dart::WeakArrayDeserializationCluster, and dart::StringDeserializationCluster.

Member Data Documentation

◆ is_canonical_

const bool dart::DeserializationCluster::is_canonical_
protected

Definition at line 256 of file app_snapshot.cc.

◆ is_immutable_

const bool dart::DeserializationCluster::is_immutable_
protected

Definition at line 257 of file app_snapshot.cc.

◆ name_

const char* const dart::DeserializationCluster::name_
protected

Definition at line 255 of file app_snapshot.cc.

◆ start_index_

intptr_t dart::DeserializationCluster::start_index_
protected

Definition at line 259 of file app_snapshot.cc.

◆ stop_index_

intptr_t dart::DeserializationCluster::stop_index_
protected

Definition at line 260 of file app_snapshot.cc.


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