8987 {
8988 const uint32_t tags = Read<uint32_t>();
8994 return new (
Z) InstanceDeserializationCluster(
8995 cid, is_canonical, is_immutable, !is_non_root_unit_);
8996 }
8999 return new (
Z) TypedDataViewDeserializationCluster(
cid);
9000 }
9003 return new (
Z) ExternalTypedDataDeserializationCluster(
cid);
9004 }
9007 return new (
Z) TypedDataDeserializationCluster(
cid);
9008 }
9009
9010#if !defined(DART_COMPRESSED_POINTERS)
9013 case kPcDescriptorsCid:
9014 case kCodeSourceMapCid:
9015 case kCompressedStackMapsCid:
9017 RODataDeserializationCluster(
cid, is_canonical, !is_non_root_unit_);
9018 case kOneByteStringCid:
9019 case kTwoByteStringCid:
9020 case kStringCid:
9021 if (!is_non_root_unit_) {
9022 return new (
Z) RODataDeserializationCluster(
cid, is_canonical,
9023 !is_non_root_unit_);
9024 }
9025 break;
9026 }
9027 }
9028#endif
9029
9031 case kClassCid:
9033 return new (
Z) ClassDeserializationCluster();
9034 case kTypeParametersCid:
9035 return new (
Z) TypeParametersDeserializationCluster();
9036 case kTypeArgumentsCid:
9038 TypeArgumentsDeserializationCluster(is_canonical, !is_non_root_unit_);
9039 case kPatchClassCid:
9041 return new (
Z) PatchClassDeserializationCluster();
9042 case kFunctionCid:
9044 return new (
Z) FunctionDeserializationCluster();
9045 case kClosureDataCid:
9047 return new (
Z) ClosureDataDeserializationCluster();
9048 case kFfiTrampolineDataCid:
9050 return new (
Z) FfiTrampolineDataDeserializationCluster();
9051 case kFieldCid:
9053 return new (
Z) FieldDeserializationCluster();
9054 case kScriptCid:
9056 return new (
Z) ScriptDeserializationCluster();
9057 case kLibraryCid:
9059 return new (
Z) LibraryDeserializationCluster();
9060 case kNamespaceCid:
9062 return new (
Z) NamespaceDeserializationCluster();
9063#if !defined(DART_PRECOMPILED_RUNTIME)
9064 case kKernelProgramInfoCid:
9066 return new (
Z) KernelProgramInfoDeserializationCluster();
9067#endif
9068 case kCodeCid:
9070 return new (
Z) CodeDeserializationCluster();
9071 case kObjectPoolCid:
9073 return new (
Z) ObjectPoolDeserializationCluster();
9074 case kPcDescriptorsCid:
9076 return new (
Z) PcDescriptorsDeserializationCluster();
9077 case kCodeSourceMapCid:
9079 return new (
Z) CodeSourceMapDeserializationCluster();
9080 case kCompressedStackMapsCid:
9082 return new (
Z) CompressedStackMapsDeserializationCluster();
9083 case kExceptionHandlersCid:
9085 return new (
Z) ExceptionHandlersDeserializationCluster();
9086 case kContextCid:
9088 return new (
Z) ContextDeserializationCluster();
9089 case kContextScopeCid:
9091 return new (
Z) ContextScopeDeserializationCluster();
9092 case kUnlinkedCallCid:
9094 return new (
Z) UnlinkedCallDeserializationCluster();
9095 case kICDataCid:
9097 return new (
Z) ICDataDeserializationCluster();
9098 case kMegamorphicCacheCid:
9100 return new (
Z) MegamorphicCacheDeserializationCluster();
9101 case kSubtypeTestCacheCid:
9103 return new (
Z) SubtypeTestCacheDeserializationCluster();
9104 case kLoadingUnitCid:
9106 return new (
Z) LoadingUnitDeserializationCluster();
9107 case kLanguageErrorCid:
9109 return new (
Z) LanguageErrorDeserializationCluster();
9110 case kUnhandledExceptionCid:
9112 return new (
Z) UnhandledExceptionDeserializationCluster();
9113 case kLibraryPrefixCid:
9115 return new (
Z) LibraryPrefixDeserializationCluster();
9116 case kTypeCid:
9118 TypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9119 case kFunctionTypeCid:
9121 FunctionTypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9122 case kRecordTypeCid:
9124 RecordTypeDeserializationCluster(is_canonical, !is_non_root_unit_);
9125 case kTypeParameterCid:
9127 TypeParameterDeserializationCluster(is_canonical, !is_non_root_unit_);
9128 case kClosureCid:
9130 ClosureDeserializationCluster(is_canonical, !is_non_root_unit_);
9131 case kMintCid:
9133 MintDeserializationCluster(is_canonical, !is_non_root_unit_);
9134 case kDoubleCid:
9136 DoubleDeserializationCluster(is_canonical, !is_non_root_unit_);
9137 case kInt32x4Cid:
9138 case kFloat32x4Cid:
9139 case kFloat64x2Cid:
9141 Simd128DeserializationCluster(
cid, is_canonical, !is_non_root_unit_);
9142 case kGrowableObjectArrayCid:
9144 return new (
Z) GrowableObjectArrayDeserializationCluster();
9145 case kRecordCid:
9147 RecordDeserializationCluster(is_canonical, !is_non_root_unit_);
9148 case kStackTraceCid:
9150 return new (
Z) StackTraceDeserializationCluster();
9151 case kRegExpCid:
9153 return new (
Z) RegExpDeserializationCluster();
9154 case kWeakPropertyCid:
9156 return new (
Z) WeakPropertyDeserializationCluster();
9157 case kMapCid:
9158
9160 case kConstMapCid:
9161 return new (
Z) MapDeserializationCluster(kConstMapCid, is_canonical,
9162 !is_non_root_unit_);
9163 case kSetCid:
9164
9166 case kConstSetCid:
9167 return new (
Z) SetDeserializationCluster(kConstSetCid, is_canonical,
9168 !is_non_root_unit_);
9169 case kArrayCid:
9170 return new (
Z) ArrayDeserializationCluster(kArrayCid, is_canonical,
9171 !is_non_root_unit_);
9172 case kImmutableArrayCid:
9173 return new (
Z) ArrayDeserializationCluster(
9174 kImmutableArrayCid, is_canonical, !is_non_root_unit_);
9175 case kWeakArrayCid:
9176 return new (
Z) WeakArrayDeserializationCluster();
9177 case kStringCid:
9178 return new (
Z) StringDeserializationCluster(
9179 is_canonical,
9181#define CASE_FFI_CID(name) case kFfi##name##Cid:
9183#undef CASE_FFI_CID
9184 return new (
Z) InstanceDeserializationCluster(
9185 cid, is_canonical, is_immutable, !is_non_root_unit_);
9186 case kDeltaEncodedTypedDataCid:
9187 return new (
Z) DeltaEncodedTypedDataDeserializationCluster();
9188 default:
9189 break;
9190 }
9191 FATAL(
"No cluster defined for cid %" Pd,
cid);
9192 return nullptr;
9193}
#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)