7802 {
7803#if defined(DART_PRECOMPILED_RUNTIME)
7805 return nullptr;
7806#else
7810 return new (
Z) InstanceSerializationCluster(is_canonical,
cid);
7811 }
7813 return new (
Z) TypedDataViewSerializationCluster(
cid);
7814 }
7816 return new (
Z) ExternalTypedDataSerializationCluster(
cid);
7817 }
7819 return new (
Z) TypedDataSerializationCluster(
cid);
7820 }
7821
7822#if !defined(DART_COMPRESSED_POINTERS)
7823
7824
7825
7826
7827
7828
7829
7830
7832 if (
auto const type = ReadOnlyObjectType(
cid)) {
7833 return new (
Z) RODataSerializationCluster(
Z,
type,
cid, is_canonical);
7834 }
7835 }
7836#endif
7837
7838 const bool cluster_represents_canonical_set =
7840
7842 case kClassCid:
7843 return new (
Z) ClassSerializationCluster(num_cids_ + num_tlc_cids_);
7844 case kTypeParametersCid:
7845 return new (
Z) TypeParametersSerializationCluster();
7846 case kTypeArgumentsCid:
7847 return new (
Z) TypeArgumentsSerializationCluster(
7848 is_canonical, cluster_represents_canonical_set);
7849 case kPatchClassCid:
7850 return new (
Z) PatchClassSerializationCluster();
7851 case kFunctionCid:
7852 return new (
Z) FunctionSerializationCluster();
7853 case kClosureDataCid:
7854 return new (
Z) ClosureDataSerializationCluster();
7855 case kFfiTrampolineDataCid:
7856 return new (
Z) FfiTrampolineDataSerializationCluster();
7857 case kFieldCid:
7858 return new (
Z) FieldSerializationCluster();
7859 case kScriptCid:
7860 return new (
Z) ScriptSerializationCluster();
7861 case kLibraryCid:
7862 return new (
Z) LibrarySerializationCluster();
7863 case kNamespaceCid:
7864 return new (
Z) NamespaceSerializationCluster();
7865 case kKernelProgramInfoCid:
7866 return new (
Z) KernelProgramInfoSerializationCluster();
7867 case kCodeCid:
7868 return new (
Z) CodeSerializationCluster(heap_);
7869 case kObjectPoolCid:
7870 return new (
Z) ObjectPoolSerializationCluster();
7871 case kPcDescriptorsCid:
7872 return new (
Z) PcDescriptorsSerializationCluster();
7873 case kCodeSourceMapCid:
7874 return new (
Z) CodeSourceMapSerializationCluster();
7875 case kCompressedStackMapsCid:
7876 return new (
Z) CompressedStackMapsSerializationCluster();
7877 case kExceptionHandlersCid:
7878 return new (
Z) ExceptionHandlersSerializationCluster();
7879 case kContextCid:
7880 return new (
Z) ContextSerializationCluster();
7881 case kContextScopeCid:
7882 return new (
Z) ContextScopeSerializationCluster();
7883 case kUnlinkedCallCid:
7884 return new (
Z) UnlinkedCallSerializationCluster();
7885 case kICDataCid:
7886 return new (
Z) ICDataSerializationCluster();
7887 case kMegamorphicCacheCid:
7888 return new (
Z) MegamorphicCacheSerializationCluster();
7889 case kSubtypeTestCacheCid:
7890 return new (
Z) SubtypeTestCacheSerializationCluster();
7891 case kLoadingUnitCid:
7892 return new (
Z) LoadingUnitSerializationCluster();
7893 case kLanguageErrorCid:
7894 return new (
Z) LanguageErrorSerializationCluster();
7895 case kUnhandledExceptionCid:
7896 return new (
Z) UnhandledExceptionSerializationCluster();
7897 case kLibraryPrefixCid:
7898 return new (
Z) LibraryPrefixSerializationCluster();
7899 case kTypeCid:
7900 return new (
Z) TypeSerializationCluster(is_canonical,
7901 cluster_represents_canonical_set);
7902 case kFunctionTypeCid:
7903 return new (
Z) FunctionTypeSerializationCluster(
7904 is_canonical, cluster_represents_canonical_set);
7905 case kRecordTypeCid:
7906 return new (
Z) RecordTypeSerializationCluster(
7907 is_canonical, cluster_represents_canonical_set);
7908 case kTypeParameterCid:
7909 return new (
Z) TypeParameterSerializationCluster(
7910 is_canonical, cluster_represents_canonical_set);
7911 case kClosureCid:
7912 return new (
Z) ClosureSerializationCluster(is_canonical);
7913 case kMintCid:
7914 return new (
Z) MintSerializationCluster(is_canonical);
7915 case kDoubleCid:
7916 return new (
Z) DoubleSerializationCluster(is_canonical);
7917 case kInt32x4Cid:
7918 case kFloat32x4Cid:
7919 case kFloat64x2Cid:
7920 return new (
Z) Simd128SerializationCluster(
cid, is_canonical);
7921 case kGrowableObjectArrayCid:
7922 return new (
Z) GrowableObjectArraySerializationCluster();
7923 case kRecordCid:
7924 return new (
Z) RecordSerializationCluster(is_canonical);
7925 case kStackTraceCid:
7926 return new (
Z) StackTraceSerializationCluster();
7927 case kRegExpCid:
7928 return new (
Z) RegExpSerializationCluster();
7929 case kWeakPropertyCid:
7930 return new (
Z) WeakPropertySerializationCluster();
7931 case kMapCid:
7932
7934 case kConstMapCid:
7935 return new (
Z) MapSerializationCluster(is_canonical, kConstMapCid);
7936 case kSetCid:
7937
7939 case kConstSetCid:
7940 return new (
Z) SetSerializationCluster(is_canonical, kConstSetCid);
7941 case kArrayCid:
7942 return new (
Z) ArraySerializationCluster(is_canonical, kArrayCid);
7943 case kImmutableArrayCid:
7945 ArraySerializationCluster(is_canonical, kImmutableArrayCid);
7946 case kWeakArrayCid:
7947 return new (
Z) WeakArraySerializationCluster();
7948 case kStringCid:
7949 return new (
Z) StringSerializationCluster(
7950 is_canonical, cluster_represents_canonical_set && !vm_);
7951#define CASE_FFI_CID(name) case kFfi##name##Cid:
7953#undef CASE_FFI_CID
7954 return new (
Z) InstanceSerializationCluster(is_canonical,
cid);
7955 case kDeltaEncodedTypedDataCid:
7956 return new (
Z) DeltaEncodedTypedDataSerializationCluster();
7957 case kWeakSerializationReferenceCid:
7958#if defined(DART_PRECOMPILER)
7960 return new (
Z) WeakSerializationReferenceSerializationCluster();
7961#endif
7962 default:
7963 break;
7964 }
7965
7966
7967
7968 return nullptr;
7969#endif
7970}
#define CASE_FFI_CID(name)
#define CLASS_LIST_FFI_TYPE_MARKER(V)
void Push(ObjectPtr object, intptr_t cid_override=kIllegalCid)
static bool IncludesCode(Kind kind)
IsolateGroup * isolate_group() const
bool IsTypedDataViewClassId(intptr_t index)
bool IsTypedDataClassId(intptr_t index)
bool IsExternalTypedDataClassId(intptr_t index)