8955 {
8956 const uint32_t tags = Read<uint32_t>();
8962 return new (
Z) InstanceDeserializationCluster(
8963 cid, is_canonical, is_immutable, !is_non_root_unit_);
8964 }
8967 return new (
Z) TypedDataViewDeserializationCluster(
cid);
8968 }
8971 return new (
Z) ExternalTypedDataDeserializationCluster(
cid);
8972 }
8975 return new (
Z) TypedDataDeserializationCluster(
cid);
8976 }
8977
8978#if !defined(DART_COMPRESSED_POINTERS)
8981 case kPcDescriptorsCid:
8982 case kCodeSourceMapCid:
8983 case kCompressedStackMapsCid:
8985 RODataDeserializationCluster(
cid, is_canonical, !is_non_root_unit_);
8986 case kOneByteStringCid:
8987 case kTwoByteStringCid:
8988 case kStringCid:
8989 if (!is_non_root_unit_) {
8990 return new (
Z) RODataDeserializationCluster(
cid, is_canonical,
8991 !is_non_root_unit_);
8992 }
8993 break;
8994 }
8995 }
8996#endif
8997
8999 case kClassCid:
9001 return new (
Z) ClassDeserializationCluster();
9002 case kTypeParametersCid:
9003 return new (
Z) TypeParametersDeserializationCluster();
9004 case kTypeArgumentsCid:
9006 TypeArgumentsDeserializationCluster(is_canonical, !is_non_root_unit_);
9007 case kPatchClassCid:
9009 return new (
Z) PatchClassDeserializationCluster();
9010 case kFunctionCid:
9012 return new (
Z) FunctionDeserializationCluster();
9013 case kClosureDataCid:
9015 return new (
Z) ClosureDataDeserializationCluster();
9016 case kFfiTrampolineDataCid:
9018 return new (
Z) FfiTrampolineDataDeserializationCluster();
9019 case kFieldCid:
9021 return new (
Z) FieldDeserializationCluster();
9022 case kScriptCid:
9024 return new (
Z) ScriptDeserializationCluster();
9025 case kLibraryCid:
9027 return new (
Z) LibraryDeserializationCluster();
9028 case kNamespaceCid:
9030 return new (
Z) NamespaceDeserializationCluster();
9031#if !defined(DART_PRECOMPILED_RUNTIME)
9032 case kKernelProgramInfoCid:
9034 return new (
Z) KernelProgramInfoDeserializationCluster();
9035#endif
9036 case kCodeCid:
9038 return new (
Z) CodeDeserializationCluster();
9039 case kObjectPoolCid:
9041 return new (
Z) ObjectPoolDeserializationCluster();
9042 case kPcDescriptorsCid:
9044 return new (
Z) PcDescriptorsDeserializationCluster();
9045 case kCodeSourceMapCid:
9047 return new (
Z) CodeSourceMapDeserializationCluster();
9048 case kCompressedStackMapsCid:
9050 return new (
Z) CompressedStackMapsDeserializationCluster();
9051 case kExceptionHandlersCid:
9053 return new (
Z) ExceptionHandlersDeserializationCluster();
9054 case kContextCid:
9056 return new (
Z) ContextDeserializationCluster();
9057 case kContextScopeCid:
9059 return new (
Z) ContextScopeDeserializationCluster();
9060 case kUnlinkedCallCid:
9062 return new (
Z) UnlinkedCallDeserializationCluster();
9063 case kICDataCid:
9065 return new (
Z) ICDataDeserializationCluster();
9066 case kMegamorphicCacheCid:
9068 return new (
Z) MegamorphicCacheDeserializationCluster();
9069 case kSubtypeTestCacheCid:
9071 return new (
Z) SubtypeTestCacheDeserializationCluster();
9072 case kLoadingUnitCid:
9074 return new (
Z) LoadingUnitDeserializationCluster();
9075 case kLanguageErrorCid:
9077 return new (
Z) LanguageErrorDeserializationCluster();
9078 case kUnhandledExceptionCid:
9080 return new (
Z) UnhandledExceptionDeserializationCluster();
9081 case kLibraryPrefixCid:
9083 return new (
Z) LibraryPrefixDeserializationCluster();
9084 case kTypeCid:
9086 TypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9087 case kFunctionTypeCid:
9089 FunctionTypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9090 case kRecordTypeCid:
9092 RecordTypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9093 case kTypeParameterCid:
9095 TypeParameterDeserializationCluster(is_canonical, !is_non_root_unit_);
9096 case kClosureCid:
9098 ClosureDeserializationCluster(is_canonical, !is_non_root_unit_);
9099 case kMintCid:
9101 MintDeserializationCluster(is_canonical, !is_non_root_unit_);
9102 case kDoubleCid:
9104 DoubleDeserializationCluster(is_canonical, !is_non_root_unit_);
9105 case kInt32x4Cid:
9106 case kFloat32x4Cid:
9107 case kFloat64x2Cid:
9109 Simd128DeserializationCluster(
cid, is_canonical, !is_non_root_unit_);
9110 case kGrowableObjectArrayCid:
9112 return new (
Z) GrowableObjectArrayDeserializationCluster();
9113 case kRecordCid:
9115 RecordDeserializationCluster(is_canonical, !is_non_root_unit_);
9116 case kStackTraceCid:
9118 return new (
Z) StackTraceDeserializationCluster();
9119 case kRegExpCid:
9121 return new (
Z) RegExpDeserializationCluster();
9122 case kWeakPropertyCid:
9124 return new (
Z) WeakPropertyDeserializationCluster();
9125 case kMapCid:
9126
9128 case kConstMapCid:
9129 return new (
Z) MapDeserializationCluster(kConstMapCid, is_canonical,
9130 !is_non_root_unit_);
9131 case kSetCid:
9132
9134 case kConstSetCid:
9135 return new (
Z) SetDeserializationCluster(kConstSetCid, is_canonical,
9136 !is_non_root_unit_);
9137 case kArrayCid:
9138 return new (
Z) ArrayDeserializationCluster(kArrayCid, is_canonical,
9139 !is_non_root_unit_);
9140 case kImmutableArrayCid:
9141 return new (
Z) ArrayDeserializationCluster(
9142 kImmutableArrayCid, is_canonical, !is_non_root_unit_);
9143 case kWeakArrayCid:
9144 return new (
Z) WeakArrayDeserializationCluster();
9145 case kStringCid:
9146 return new (
Z) StringDeserializationCluster(
9147 is_canonical,
9149#define CASE_FFI_CID(name) case kFfi##name##Cid:
9151#undef CASE_FFI_CID
9152 return new (
Z) InstanceDeserializationCluster(
9153 cid, is_canonical, is_immutable, !is_non_root_unit_);
9154 case kDeltaEncodedTypedDataCid:
9155 return new (
Z) DeltaEncodedTypedDataDeserializationCluster();
9156 default:
9157 break;
9158 }
9159 FATAL(
"No cluster defined for cid %" Pd,
cid);
9160 return nullptr;
9161}
#define CASE_FFI_CID(name)
#define CLASS_LIST_FFI_TYPE_MARKER(V)
static constexpr ClassIdTagType decode(uword value)
static IsolateGroup * vm_isolate_group()
bool IsTypedDataViewClassId(intptr_t index)
bool IsTypedDataClassId(intptr_t index)
bool IsExternalTypedDataClassId(intptr_t index)