[vm] Remove _HashFieldBase
This class is structurally equivalent to _HashVMBase and the only reason for it to exist for inability of normal Dart classes to extend _HashVMBase - but this can worked around by properly configuring _HashVMBase class in bootstrapping. TEST=ci Change-Id: I5ca401e274920d2b4739424c6b6595306a6a6964 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/494140 Commit-Queue: Slava Egorov <vegorov@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
committed by
dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent
25bb8ce922
commit
fff4f2324d
@@ -132,7 +132,7 @@ class ObjectLayout {
|
|||||||
};
|
};
|
||||||
|
|
||||||
late final Map<String, int> _dartCompactHashInstanceSize = {
|
late final Map<String, int> _dartCompactHashInstanceSize = {
|
||||||
'_HashVMBase': vmOffsets.LinkedHashBase_InstanceSize,
|
'_LinkedHashBase': vmOffsets.LinkedHashBase_InstanceSize,
|
||||||
};
|
};
|
||||||
|
|
||||||
late final ast.Library _typedDataLibrary = GlobalContext
|
late final ast.Library _typedDataLibrary = GlobalContext
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ base class VMOffsets {
|
|||||||
int get LinkedHashBase_index_offset => throw 'Unknown';
|
int get LinkedHashBase_index_offset => throw 'Unknown';
|
||||||
int get LinkedHashBase_type_arguments_offset => throw 'Unknown';
|
int get LinkedHashBase_type_arguments_offset => throw 'Unknown';
|
||||||
int get LinkedHashBase_used_data_offset => throw 'Unknown';
|
int get LinkedHashBase_used_data_offset => throw 'Unknown';
|
||||||
|
int get LinkedHashBase_NextFieldOffset => throw 'Unknown';
|
||||||
int get LocalHandle_ptr_offset => throw 'Unknown';
|
int get LocalHandle_ptr_offset => throw 'Unknown';
|
||||||
int get MarkingStackBlock_pointers_offset => throw 'Unknown';
|
int get MarkingStackBlock_pointers_offset => throw 'Unknown';
|
||||||
int get MarkingStackBlock_top_offset => throw 'Unknown';
|
int get MarkingStackBlock_top_offset => throw 'Unknown';
|
||||||
@@ -856,6 +857,8 @@ final class Arm64VMOffsets extends VMOffsets {
|
|||||||
@override
|
@override
|
||||||
int get LinkedHashBase_used_data_offset => 0x20;
|
int get LinkedHashBase_used_data_offset => 0x20;
|
||||||
@override
|
@override
|
||||||
|
int get LinkedHashBase_NextFieldOffset => 0x38;
|
||||||
|
@override
|
||||||
int get LocalHandle_ptr_offset => 0x0;
|
int get LocalHandle_ptr_offset => 0x0;
|
||||||
@override
|
@override
|
||||||
int get MarkingStackBlock_pointers_offset => 0x10;
|
int get MarkingStackBlock_pointers_offset => 0x10;
|
||||||
@@ -1813,6 +1816,8 @@ final class Arm64ProductVMOffsets extends VMOffsets {
|
|||||||
@override
|
@override
|
||||||
int get LinkedHashBase_used_data_offset => 0x20;
|
int get LinkedHashBase_used_data_offset => 0x20;
|
||||||
@override
|
@override
|
||||||
|
int get LinkedHashBase_NextFieldOffset => 0x38;
|
||||||
|
@override
|
||||||
int get LocalHandle_ptr_offset => 0x0;
|
int get LocalHandle_ptr_offset => 0x0;
|
||||||
@override
|
@override
|
||||||
int get MarkingStackBlock_pointers_offset => 0x10;
|
int get MarkingStackBlock_pointers_offset => 0x10;
|
||||||
@@ -2868,6 +2873,7 @@ enum ClassId {
|
|||||||
StringCid,
|
StringCid,
|
||||||
OneByteStringCid,
|
OneByteStringCid,
|
||||||
TwoByteStringCid,
|
TwoByteStringCid,
|
||||||
|
LinkedHashBaseCid,
|
||||||
FfiNativeFunctionCid,
|
FfiNativeFunctionCid,
|
||||||
FfiInt8Cid,
|
FfiInt8Cid,
|
||||||
FfiInt16Cid,
|
FfiInt16Cid,
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ class InheritedElement extends self::Element {
|
|||||||
[@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
|
[@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
|
||||||
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:2,getterSelectorId:3]
|
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:2,getterSelectorId:3]
|
||||||
method setDependencies([@vm.inferred-arg-type.metadata=!] self::Element dependent, [@vm.inferred-arg-type.metadata=dart.core::_Smi?] core::Object? value) → void {
|
method setDependencies([@vm.inferred-arg-type.metadata=!] self::Element dependent, [@vm.inferred-arg-type.metadata=dart.core::_Smi?] core::Object? value) → void {
|
||||||
[@vm.call-site-attributes.metadata=receiverType:dart.core::Map<#lib::Element, dart.core::Object?>] [@vm.direct-call.metadata=dart._compact_hash::__Map&_HashVMBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.[]=] [@vm.inferred-type.metadata=? (skip check)] [@vm.direct-call.metadata=#lib::InheritedElement._dependents] [@vm.inferred-type.metadata=dart._compact_hash::_Map<#lib::Element, dart.core::Object?>] this.{self::InheritedElement::_dependents}{core::Map<self::Element, core::Object?>}.{core::Map::[]=}(dependent, value){(self::Element, core::Object?) → void};
|
[@vm.call-site-attributes.metadata=receiverType:dart.core::Map<#lib::Element, dart.core::Object?>] [@vm.direct-call.metadata=dart._compact_hash::__Map&_LinkedHashBase&MapMixin&_HashBase&_OperatorEqualsAndHashCode&_LinkedHashMapMixin.[]=] [@vm.inferred-type.metadata=? (skip check)] [@vm.direct-call.metadata=#lib::InheritedElement._dependents] [@vm.inferred-type.metadata=dart._compact_hash::_Map<#lib::Element, dart.core::Object?>] this.{self::InheritedElement::_dependents}{core::Map<self::Element, core::Object?>}.{core::Map::[]=}(dependent, value){(self::Element, core::Object?) → void};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class _Attribute extends core::Object {
|
|||||||
|
|
||||||
[@vm.inferred-return-type.metadata=#lib::_Attribute]
|
[@vm.inferred-return-type.metadata=#lib::_Attribute]
|
||||||
static method fromReader() → self::_Attribute {
|
static method fromReader() → self::_Attribute {
|
||||||
final self::_AttributeName name = [@vm.direct-call.metadata=dart._compact_hash::__ConstMap&_HashVMImmutableBase&MapMixin&_HashBase&_OperatorEqualsAndCanonicalHashCode&_LinkedHashMapMixin&_UnmodifiableMapMixin&_ImmutableLinkedHashMapMixin.[]] [@vm.inferred-type.metadata=#lib::_AttributeName? (skip check)] #C8.{core::Map::[]}(#C1){(core::Object?) → self::_AttributeName?}!;
|
final self::_AttributeName name = [@vm.direct-call.metadata=dart._compact_hash::__ConstMap&_LinkedHashImmutableBase&MapMixin&_HashBase&_OperatorEqualsAndCanonicalHashCode&_LinkedHashMapMixin&_UnmodifiableMapMixin&_ImmutableLinkedHashMapMixin.[]] [@vm.inferred-type.metadata=#lib::_AttributeName? (skip check)] #C8.{core::Map::[]}(#C1){(core::Object?) → self::_AttributeName?}!;
|
||||||
return new self::_Attribute::_();
|
return new self::_Attribute::_();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class _Attribute extends core::Object {
|
|||||||
|
|
||||||
[@vm.inferred-return-type.metadata=#lib::_Attribute]
|
[@vm.inferred-return-type.metadata=#lib::_Attribute]
|
||||||
static method fromReader() → self::_Attribute {
|
static method fromReader() → self::_Attribute {
|
||||||
final core::bool name = [@vm.direct-call.metadata=dart._compact_hash::__ConstSet&_HashVMImmutableBase&SetMixin&_HashBase&_OperatorEqualsAndCanonicalHashCode&_LinkedHashSetMixin&_UnmodifiableSetMixin&_ImmutableLinkedHashSetMixin.contains] [@vm.inferred-type.metadata=? (skip check)] #C3.{core::Set::contains}(#C2){(core::Object?) → core::bool};
|
final core::bool name = [@vm.direct-call.metadata=dart._compact_hash::__ConstSet&_LinkedHashImmutableBase&SetMixin&_HashBase&_OperatorEqualsAndCanonicalHashCode&_LinkedHashSetMixin&_UnmodifiableSetMixin&_ImmutableLinkedHashSetMixin.contains] [@vm.inferred-type.metadata=? (skip check)] #C3.{core::Set::contains}(#C2){(core::Object?) → core::bool};
|
||||||
return let final self::_AttributeName #t1 = #C8.{core::List::[]}(#C2){(core::int) → self::_AttributeName} in new self::_Attribute::_();
|
return let final self::_AttributeName #t1 = #C8.{core::List::[]}(#C2){(core::int) → self::_AttributeName} in new self::_Attribute::_();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,6 +312,7 @@ static constexpr intptr_t kClassIdTagMax = (1 << 20) - 1;
|
|||||||
CID(FreeListElement) \
|
CID(FreeListElement) \
|
||||||
CID(ForwardingCorpse) \
|
CID(ForwardingCorpse) \
|
||||||
CLASS_LIST(DEFINE_CLASS_ID) \
|
CLASS_LIST(DEFINE_CLASS_ID) \
|
||||||
|
CID(LinkedHashBaseCid) \
|
||||||
CLASS_LIST_FFI(DEFINE_FFI_CLASS_ID) \
|
CLASS_LIST_FFI(DEFINE_FFI_CLASS_ID) \
|
||||||
CLASS_LIST_TYPED_DATA(DEFINE_TYPED_DATA_CLASS_ID) \
|
CLASS_LIST_TYPED_DATA(DEFINE_TYPED_DATA_CLASS_ID) \
|
||||||
CID(ByteDataViewCid) \
|
CID(ByteDataViewCid) \
|
||||||
|
|||||||
@@ -78,31 +78,31 @@ namespace dart {
|
|||||||
V(CoreLibrary, _Smi, get:hashCode, Smi_hashCode, 0x75c3b512) \
|
V(CoreLibrary, _Smi, get:hashCode, Smi_hashCode, 0x75c3b512) \
|
||||||
V(CoreLibrary, _Mint, get:hashCode, Mint_hashCode, 0x75c3b512) \
|
V(CoreLibrary, _Mint, get:hashCode, Mint_hashCode, 0x75c3b512) \
|
||||||
V(CoreLibrary, _Double, get:hashCode, Double_hashCode, 0x75c3b8d3) \
|
V(CoreLibrary, _Double, get:hashCode, Double_hashCode, 0x75c3b8d3) \
|
||||||
V(CompactHashLibrary, _HashVMBase, get:_index, LinkedHashBase_getIndex, \
|
V(CompactHashLibrary, _LinkedHashBase, get:_index, LinkedHashBase_getIndex, \
|
||||||
0xb49e7210) \
|
0xb49e7210) \
|
||||||
V(CompactHashLibrary, _HashVMBase, set:_index, LinkedHashBase_setIndex, \
|
V(CompactHashLibrary, _LinkedHashBase, set:_index, LinkedHashBase_setIndex, \
|
||||||
0xcf36944c) \
|
0xcf36944c) \
|
||||||
V(CompactHashLibrary, _HashVMBase, get:_data, LinkedHashBase_getData, \
|
V(CompactHashLibrary, _LinkedHashBase, get:_data, LinkedHashBase_getData, \
|
||||||
0x82aeadd7) \
|
0x82aeadd7) \
|
||||||
V(CompactHashLibrary, _HashVMBase, set:_data, LinkedHashBase_setData, \
|
V(CompactHashLibrary, _LinkedHashBase, set:_data, LinkedHashBase_setData, \
|
||||||
0xc1465c93) \
|
0xc1465c93) \
|
||||||
V(CompactHashLibrary, _HashVMBase, get:_usedData, \
|
V(CompactHashLibrary, _LinkedHashBase, get:_usedData, \
|
||||||
LinkedHashBase_getUsedData, 0x74808f38) \
|
LinkedHashBase_getUsedData, 0x74808f38) \
|
||||||
V(CompactHashLibrary, _HashVMBase, set:_usedData, \
|
V(CompactHashLibrary, _LinkedHashBase, set:_usedData, \
|
||||||
LinkedHashBase_setUsedData, 0xe14082f4) \
|
LinkedHashBase_setUsedData, 0xe14082f4) \
|
||||||
V(CompactHashLibrary, _HashVMBase, get:_hashMask, \
|
V(CompactHashLibrary, _LinkedHashBase, get:_hashMask, \
|
||||||
LinkedHashBase_getHashMask, 0x53cd6dce) \
|
LinkedHashBase_getHashMask, 0x53cd6dce) \
|
||||||
V(CompactHashLibrary, _HashVMBase, set:_hashMask, \
|
V(CompactHashLibrary, _LinkedHashBase, set:_hashMask, \
|
||||||
LinkedHashBase_setHashMask, 0xc08d618a) \
|
LinkedHashBase_setHashMask, 0xc08d618a) \
|
||||||
V(CompactHashLibrary, _HashVMBase, get:_deletedKeys, \
|
V(CompactHashLibrary, _LinkedHashBase, get:_deletedKeys, \
|
||||||
LinkedHashBase_getDeletedKeys, 0x75eeb895) \
|
LinkedHashBase_getDeletedKeys, 0x75eeb895) \
|
||||||
V(CompactHashLibrary, _HashVMBase, set:_deletedKeys, \
|
V(CompactHashLibrary, _LinkedHashBase, set:_deletedKeys, \
|
||||||
LinkedHashBase_setDeletedKeys, 0xe2aeac51) \
|
LinkedHashBase_setDeletedKeys, 0xe2aeac51) \
|
||||||
V(CompactHashLibrary, _HashVMImmutableBase, get:_data, \
|
V(CompactHashLibrary, _LinkedHashImmutableBase, get:_data, \
|
||||||
ImmutableLinkedHashBase_getData, 0x82aeadd7) \
|
ImmutableLinkedHashBase_getData, 0x82aeadd7) \
|
||||||
V(CompactHashLibrary, _HashVMImmutableBase, get:_indexNullable, \
|
V(CompactHashLibrary, _LinkedHashImmutableBase, get:_indexNullable, \
|
||||||
ImmutableLinkedHashBase_getIndex, 0xfe7649ae) \
|
ImmutableLinkedHashBase_getIndex, 0xfe7649ae) \
|
||||||
V(CompactHashLibrary, _HashVMImmutableBase, set:_index, \
|
V(CompactHashLibrary, _LinkedHashImmutableBase, set:_index, \
|
||||||
ImmutableLinkedHashBase_setIndexStoreRelease, 0xcf36944c) \
|
ImmutableLinkedHashBase_setIndexStoreRelease, 0xcf36944c) \
|
||||||
V(CompactHashLibrary, ::, get:_uninitializedIndex, \
|
V(CompactHashLibrary, ::, get:_uninitializedIndex, \
|
||||||
CompactHash_uninitializedIndex, 0xa25a79e6) \
|
CompactHash_uninitializedIndex, 0xa25a79e6) \
|
||||||
|
|||||||
@@ -671,6 +671,7 @@ class LinkedHashBase : public AllStatic {
|
|||||||
static word deleted_keys_offset();
|
static word deleted_keys_offset();
|
||||||
static word type_arguments_offset();
|
static word type_arguments_offset();
|
||||||
static word InstanceSize();
|
static word InstanceSize();
|
||||||
|
static word NextFieldOffset();
|
||||||
};
|
};
|
||||||
|
|
||||||
class ImmutableLinkedHashBase : public LinkedHashBase {
|
class ImmutableLinkedHashBase : public LinkedHashBase {
|
||||||
|
|||||||
@@ -271,6 +271,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -1039,6 +1041,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -1806,6 +1810,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -2573,6 +2579,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -3346,6 +3354,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x14;
|
0x14;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x20;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -4116,6 +4126,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x14;
|
0x14;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x20;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -4884,6 +4896,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -5653,6 +5667,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -6414,6 +6430,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -7174,6 +7192,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -7933,6 +7953,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -8692,6 +8714,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -9457,6 +9481,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x14;
|
0x14;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x20;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -10219,6 +10245,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x14;
|
0x14;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x20;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -10979,6 +11007,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x4;
|
LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x10;
|
0x10;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x1c;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x8;
|
MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -11740,6 +11770,8 @@ static constexpr dart::compiler::target::word
|
|||||||
LinkedHashBase_type_arguments_offset = 0x8;
|
LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
static constexpr dart::compiler::target::word LinkedHashBase_used_data_offset =
|
||||||
0x20;
|
0x20;
|
||||||
|
static constexpr dart::compiler::target::word LinkedHashBase_NextFieldOffset =
|
||||||
|
0x38;
|
||||||
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
MarkingStackBlock_pointers_offset = 0x10;
|
MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -12532,6 +12564,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x10;
|
AOT_LinkedHashBase_used_data_offset = 0x10;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x1c;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -13383,6 +13417,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -14241,6 +14277,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -15095,6 +15133,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x14;
|
AOT_LinkedHashBase_used_data_offset = 0x14;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x20;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -15949,6 +15989,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x14;
|
AOT_LinkedHashBase_used_data_offset = 0x14;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x20;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -16801,6 +16843,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x10;
|
AOT_LinkedHashBase_used_data_offset = 0x10;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x1c;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -17653,6 +17697,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -18495,6 +18541,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x10;
|
AOT_LinkedHashBase_used_data_offset = 0x10;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x1c;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -19337,6 +19385,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -20186,6 +20236,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -21031,6 +21083,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x14;
|
AOT_LinkedHashBase_used_data_offset = 0x14;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x20;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -21876,6 +21930,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x14;
|
AOT_LinkedHashBase_used_data_offset = 0x14;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x20;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
@@ -22719,6 +22775,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
AOT_LinkedHashBase_type_arguments_offset = 0x4;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x10;
|
AOT_LinkedHashBase_used_data_offset = 0x10;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x1c;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
AOT_MarkingStackBlock_pointers_offset = 0x8;
|
||||||
@@ -23562,6 +23620,8 @@ static constexpr dart::compiler::target::word
|
|||||||
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
AOT_LinkedHashBase_type_arguments_offset = 0x8;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_LinkedHashBase_used_data_offset = 0x20;
|
AOT_LinkedHashBase_used_data_offset = 0x20;
|
||||||
|
static constexpr dart::compiler::target::word
|
||||||
|
AOT_LinkedHashBase_NextFieldOffset = 0x38;
|
||||||
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
static constexpr dart::compiler::target::word AOT_LocalHandle_ptr_offset = 0x0;
|
||||||
static constexpr dart::compiler::target::word
|
static constexpr dart::compiler::target::word
|
||||||
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
AOT_MarkingStackBlock_pointers_offset = 0x10;
|
||||||
|
|||||||
@@ -212,6 +212,7 @@
|
|||||||
FIELD(LinkedHashBase, index_offset) \
|
FIELD(LinkedHashBase, index_offset) \
|
||||||
FIELD(LinkedHashBase, type_arguments_offset) \
|
FIELD(LinkedHashBase, type_arguments_offset) \
|
||||||
FIELD(LinkedHashBase, used_data_offset) \
|
FIELD(LinkedHashBase, used_data_offset) \
|
||||||
|
FIELD(LinkedHashBase, NextFieldOffset) \
|
||||||
FIELD(LocalHandle, ptr_offset) \
|
FIELD(LocalHandle, ptr_offset) \
|
||||||
FIELD(MarkingStackBlock, pointers_offset) \
|
FIELD(MarkingStackBlock, pointers_offset) \
|
||||||
FIELD(MarkingStackBlock, top_offset) \
|
FIELD(MarkingStackBlock, top_offset) \
|
||||||
|
|||||||
@@ -646,6 +646,11 @@ void Object::InitVtables() {
|
|||||||
builtin_vtables_[kUnmodifiableByteDataViewCid] = fake_handle.vtable();
|
builtin_vtables_[kUnmodifiableByteDataViewCid] = fake_handle.vtable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
LinkedHashBase fake_handle;
|
||||||
|
builtin_vtables_[kLinkedHashBaseCid] = fake_handle.vtable();
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
Instance fake_handle;
|
Instance fake_handle;
|
||||||
builtin_vtables_[kByteBufferCid] = fake_handle.vtable();
|
builtin_vtables_[kByteBufferCid] = fake_handle.vtable();
|
||||||
@@ -2143,6 +2148,18 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
|
|||||||
|
|
||||||
ASSERT(!lib.IsNull());
|
ASSERT(!lib.IsNull());
|
||||||
ASSERT(lib.ptr() == Library::CompactHashLibrary());
|
ASSERT(lib.ptr() == Library::CompactHashLibrary());
|
||||||
|
|
||||||
|
cls = Class::New<LinkedHashBase, RTN::LinkedHashBase>(
|
||||||
|
kLinkedHashBaseCid, isolate_group, /*register_class=*/true,
|
||||||
|
/*is_abstract=*/true);
|
||||||
|
cls.set_type_arguments_field_offset(
|
||||||
|
LinkedHashBase::type_arguments_offset(),
|
||||||
|
RTN::LinkedHashBase::type_arguments_offset());
|
||||||
|
cls.set_is_prefinalized();
|
||||||
|
isolate_group->class_table()->Register(cls);
|
||||||
|
RegisterPrivateClass(cls, Symbols::_LinkedHashBase(), lib);
|
||||||
|
pending_classes.Add(cls);
|
||||||
|
|
||||||
cls = Class::New<Map, RTN::Map>(isolate_group);
|
cls = Class::New<Map, RTN::Map>(isolate_group);
|
||||||
object_store->set_map_impl_class(cls);
|
object_store->set_map_impl_class(cls);
|
||||||
cls.set_type_arguments_field_offset(Map::type_arguments_offset(),
|
cls.set_type_arguments_field_offset(Map::type_arguments_offset(),
|
||||||
@@ -2624,6 +2641,10 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
|
|||||||
isolate_group);
|
isolate_group);
|
||||||
object_store->set_growable_object_array_class(cls);
|
object_store->set_growable_object_array_class(cls);
|
||||||
|
|
||||||
|
cls = Class::New<LinkedHashBase, RTN::LinkedHashBase>(
|
||||||
|
kLinkedHashBaseCid, isolate_group, /*register_class=*/true,
|
||||||
|
/*is_abstract=*/true);
|
||||||
|
|
||||||
cls = Class::New<Map, RTN::Map>(isolate_group);
|
cls = Class::New<Map, RTN::Map>(isolate_group);
|
||||||
object_store->set_map_impl_class(cls);
|
object_store->set_map_impl_class(cls);
|
||||||
|
|
||||||
|
|||||||
@@ -12318,6 +12318,7 @@ class LinkedHashBase : public Instance {
|
|||||||
static intptr_t InstanceSize() {
|
static intptr_t InstanceSize() {
|
||||||
return RoundedAllocationSize(sizeof(UntaggedLinkedHashBase));
|
return RoundedAllocationSize(sizeof(UntaggedLinkedHashBase));
|
||||||
}
|
}
|
||||||
|
static intptr_t NextFieldOffset() { return sizeof(UntaggedLinkedHashBase); }
|
||||||
|
|
||||||
static intptr_t type_arguments_offset() {
|
static intptr_t type_arguments_offset() {
|
||||||
return OFFSET_OF(UntaggedLinkedHashBase, type_arguments_);
|
return OFFSET_OF(UntaggedLinkedHashBase, type_arguments_);
|
||||||
|
|||||||
@@ -349,6 +349,7 @@ namespace dart {
|
|||||||
V(_GrowableListGenerateFactory, "_GrowableList.generate") \
|
V(_GrowableListGenerateFactory, "_GrowableList.generate") \
|
||||||
V(_GrowableListLiteralFactory, "_GrowableList._literal") \
|
V(_GrowableListLiteralFactory, "_GrowableList._literal") \
|
||||||
V(_GrowableListWithData, "_GrowableList._withData") \
|
V(_GrowableListWithData, "_GrowableList._withData") \
|
||||||
|
V(_LinkedHashBase, "_LinkedHashBase") \
|
||||||
V(_ImmutableList, "_ImmutableList") \
|
V(_ImmutableList, "_ImmutableList") \
|
||||||
V(_Int16ArrayFactory, "Int16List.") \
|
V(_Int16ArrayFactory, "Int16List.") \
|
||||||
V(_Int16ArrayView, "_Int16ArrayView") \
|
V(_Int16ArrayView, "_Int16ArrayView") \
|
||||||
|
|||||||
@@ -109,64 +109,8 @@ void _rehashObjects(List objects) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Common interface for [_HashFieldBase] and [_HashVMBase].
|
// Corresponds to `UntaggedLinkedHashBase` VM class.
|
||||||
abstract class _HashAbstractBase {
|
abstract class _LinkedHashBase {
|
||||||
abstract Uint32List _index;
|
|
||||||
|
|
||||||
abstract int _hashMask;
|
|
||||||
|
|
||||||
abstract List _data;
|
|
||||||
|
|
||||||
abstract int _usedData;
|
|
||||||
|
|
||||||
abstract int _deletedKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _HashAbstractImmutableBase extends _HashAbstractBase {
|
|
||||||
Uint32List? get _indexNullable;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _HashFieldBase implements _HashAbstractImmutableBase {
|
|
||||||
// Each occupied entry in _index is a fixed-size integer that encodes a pair:
|
|
||||||
// [ hash pattern for key | index of entry in _data ]
|
|
||||||
// The hash pattern is based on hashCode, but is guaranteed to be non-zero.
|
|
||||||
// The length of _index is always a power of two, and there is always at
|
|
||||||
// least one unoccupied entry.
|
|
||||||
// NOTE: When maps are deserialized, their _index and _hashMask is regenerated
|
|
||||||
// eagerly by _regenerateIndex.
|
|
||||||
Uint32List? _indexNullable = _uninitializedIndex;
|
|
||||||
|
|
||||||
@pragma("vm:exact-result-type", "dart:typed_data#_Uint32List")
|
|
||||||
@pragma("vm:prefer-inline")
|
|
||||||
@pragma("wasm:prefer-inline")
|
|
||||||
Uint32List get _index => _indexNullable!;
|
|
||||||
|
|
||||||
@pragma("vm:prefer-inline")
|
|
||||||
@pragma("wasm:prefer-inline")
|
|
||||||
void set _index(Uint32List value) => _indexNullable = value;
|
|
||||||
|
|
||||||
// Cached in-place mask for the hash pattern component.
|
|
||||||
int _hashMask = _HashBase._UNINITIALIZED_HASH_MASK;
|
|
||||||
|
|
||||||
// Fixed-length list of keys (set) or key/value at even/odd indices (map).
|
|
||||||
//
|
|
||||||
// Can be either a mutable or immutable list.
|
|
||||||
List _data = _uninitializedData;
|
|
||||||
|
|
||||||
// Length of _data that is used (i.e., keys + values for a map).
|
|
||||||
int _usedData = 0;
|
|
||||||
|
|
||||||
// Number of deleted keys.
|
|
||||||
int _deletedKeys = 0;
|
|
||||||
|
|
||||||
// Note: All fields are initialized in a single constructor so that the VM
|
|
||||||
// recognizes they cannot hold null values. This makes a big (20%) performance
|
|
||||||
// difference on some operations.
|
|
||||||
_HashFieldBase();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Base class for VM-internal classes; keep in sync with _HashFieldBase.
|
|
||||||
abstract class _HashVMBase implements _HashAbstractBase {
|
|
||||||
@pragma("vm:recognized", "other")
|
@pragma("vm:recognized", "other")
|
||||||
@pragma("vm:exact-result-type", "dart:typed_data#_Uint32List")
|
@pragma("vm:exact-result-type", "dart:typed_data#_Uint32List")
|
||||||
@pragma("vm:prefer-inline")
|
@pragma("vm:prefer-inline")
|
||||||
@@ -206,11 +150,18 @@ abstract class _HashVMBase implements _HashAbstractBase {
|
|||||||
@pragma("vm:recognized", "other")
|
@pragma("vm:recognized", "other")
|
||||||
@pragma("vm:prefer-inline")
|
@pragma("vm:prefer-inline")
|
||||||
external void set _deletedKeys(int value);
|
external void set _deletedKeys(int value);
|
||||||
|
|
||||||
|
_LinkedHashBase() {
|
||||||
|
_index = _uninitializedIndex;
|
||||||
|
_hashMask = _HashBase._UNINITIALIZED_HASH_MASK;
|
||||||
|
_data = _uninitializedData;
|
||||||
|
_usedData = 0;
|
||||||
|
_deletedKeys = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base class for immutable VM-internal classes.
|
// Base class for immutable sets and maps.
|
||||||
abstract class _HashVMImmutableBase extends _HashVMBase
|
abstract class _LinkedHashImmutableBase extends _LinkedHashBase {
|
||||||
implements _HashAbstractImmutableBase {
|
|
||||||
// The data is an immutable list rather than a mutable list.
|
// The data is an immutable list rather than a mutable list.
|
||||||
@pragma("vm:recognized", "other")
|
@pragma("vm:recognized", "other")
|
||||||
@pragma("vm:exact-result-type", "dart:core#_ImmutableList")
|
@pragma("vm:exact-result-type", "dart:core#_ImmutableList")
|
||||||
@@ -229,10 +180,13 @@ abstract class _HashVMImmutableBase extends _HashVMBase
|
|||||||
external void set _index(Uint32List value);
|
external void set _index(Uint32List value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This mixin can be applied to _HashFieldBase or _HashVMBase (for
|
// This mixin can be applied to _LinkedHashBase or _LinkedHashImmutableBase.
|
||||||
// normal and VM-internalized classes, respectively), which provide the
|
//
|
||||||
// actual fields/accessors that this mixin assumes.
|
// Note that _LinkedHashImmutableBase overrides certain accessors on
|
||||||
mixin _HashBase on _HashAbstractBase {
|
// _LinkedHashBase to provide behaviors specific to constant maps and sets.
|
||||||
|
// We use mixins to copy implementation methods that depend on these accessors
|
||||||
|
// and avoid polymorphism in the code.
|
||||||
|
mixin _HashBase on _LinkedHashBase {
|
||||||
// The number of bits used for each component is determined by table size.
|
// The number of bits used for each component is determined by table size.
|
||||||
// If initialized, the length of _index is (at least) twice the number of
|
// If initialized, the length of _index is (at least) twice the number of
|
||||||
// entries in _data, and both are doubled when _data is full. Thus, _index
|
// entries in _data, and both are doubled when _data is full. Thus, _index
|
||||||
@@ -378,7 +332,7 @@ external List get _uninitializedData;
|
|||||||
// literals also create instances of this class.
|
// literals also create instances of this class.
|
||||||
@pragma("vm:entry-point")
|
@pragma("vm:entry-point")
|
||||||
@pragma('dyn-module:language-impl:callable')
|
@pragma('dyn-module:language-impl:callable')
|
||||||
base class _Map<K, V> extends _HashVMBase
|
base class _Map<K, V> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
MapMixin<K, V>,
|
MapMixin<K, V>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -386,13 +340,7 @@ base class _Map<K, V> extends _HashVMBase
|
|||||||
_LinkedHashMapMixin<K, V>
|
_LinkedHashMapMixin<K, V>
|
||||||
implements LinkedHashMap<K, V> {
|
implements LinkedHashMap<K, V> {
|
||||||
@pragma('dyn-module:language-impl:callable')
|
@pragma('dyn-module:language-impl:callable')
|
||||||
_Map() {
|
_Map();
|
||||||
_index = _uninitializedIndex;
|
|
||||||
_hashMask = _HashBase._UNINITIALIZED_HASH_MASK;
|
|
||||||
_data = _uninitializedData;
|
|
||||||
_usedData = 0;
|
|
||||||
_deletedKeys = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void addAll(Map<K, V> other) {
|
void addAll(Map<K, V> other) {
|
||||||
if (other case final _Map otherBase) {
|
if (other case final _Map otherBase) {
|
||||||
@@ -409,7 +357,7 @@ base class _Map<K, V> extends _HashVMBase
|
|||||||
// this class for maps constructed from Dart constant maps.
|
// this class for maps constructed from Dart constant maps.
|
||||||
@pragma("vm:deeply-immutable")
|
@pragma("vm:deeply-immutable")
|
||||||
@pragma("vm:entry-point")
|
@pragma("vm:entry-point")
|
||||||
final class _ConstMap<K, V> extends _HashVMImmutableBase
|
final class _ConstMap<K, V> extends _LinkedHashImmutableBase
|
||||||
with
|
with
|
||||||
MapMixin<K, V>,
|
MapMixin<K, V>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -430,7 +378,7 @@ external _ConstMap<K, V> createConstMapFromMapOfDeeplyImmutables<K, V>(
|
|||||||
);
|
);
|
||||||
|
|
||||||
mixin _ImmutableLinkedHashMapMixin<K, V>
|
mixin _ImmutableLinkedHashMapMixin<K, V>
|
||||||
on _LinkedHashMapMixin<K, V>, _HashAbstractImmutableBase {
|
on _LinkedHashMapMixin<K, V>, _LinkedHashImmutableBase {
|
||||||
bool containsKey(Object? key) {
|
bool containsKey(Object? key) {
|
||||||
if (_indexNullable == null) {
|
if (_indexNullable == null) {
|
||||||
_createIndex();
|
_createIndex();
|
||||||
@@ -781,7 +729,7 @@ mixin _LinkedHashMapMixin<K, V> on _HashBase, _EqualsAndHashCode {
|
|||||||
Iterable<MapEntry<K, V>> get entries => _CompactEntriesIterable<K, V>(this);
|
Iterable<MapEntry<K, V>> get entries => _CompactEntriesIterable<K, V>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
base class CompactLinkedIdentityHashMap<K, V> extends _HashFieldBase
|
base class CompactLinkedIdentityHashMap<K, V> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
MapMixin<K, V>,
|
MapMixin<K, V>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -798,7 +746,7 @@ base class CompactLinkedIdentityHashMap<K, V> extends _HashFieldBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
base class CompactLinkedCustomHashMap<K, V> extends _HashFieldBase
|
base class CompactLinkedCustomHashMap<K, V> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
MapMixin<K, V>,
|
MapMixin<K, V>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -941,7 +889,7 @@ class _CompactEntriesIterator<K, V> implements Iterator<MapEntry<K, V>> {
|
|||||||
// Does not check for concurrent modification since the table
|
// Does not check for concurrent modification since the table
|
||||||
// is known to be immutable.
|
// is known to be immutable.
|
||||||
class _CompactIterableImmutable<E> extends Iterable<E> {
|
class _CompactIterableImmutable<E> extends Iterable<E> {
|
||||||
// _HashBase with _HashVMImmutableBase.
|
// _HashBase with _LinkedHashImmutableBase.
|
||||||
final _HashBase _table;
|
final _HashBase _table;
|
||||||
// dart:core#_ImmutableList (sdk/lib/_internal/vm/lib/array.dart).
|
// dart:core#_ImmutableList (sdk/lib/_internal/vm/lib/array.dart).
|
||||||
final List _data;
|
final List _data;
|
||||||
@@ -966,7 +914,7 @@ class _CompactIterableImmutable<E> extends Iterable<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _CompactIteratorImmutable<E> implements Iterator<E> {
|
class _CompactIteratorImmutable<E> implements Iterator<E> {
|
||||||
// _HashBase with _HashVMImmutableBase.
|
// _HashBase with _LinkedHashImmutableBase.
|
||||||
final _HashBase _table;
|
final _HashBase _table;
|
||||||
// dart:core#_ImmutableList (sdk/lib/_internal/vm/lib/array.dart).
|
// dart:core#_ImmutableList (sdk/lib/_internal/vm/lib/array.dart).
|
||||||
final List _data;
|
final List _data;
|
||||||
@@ -1172,7 +1120,7 @@ mixin _LinkedHashSetMixin<E> on _HashBase, _EqualsAndHashCode {
|
|||||||
// class.
|
// class.
|
||||||
@pragma("vm:entry-point")
|
@pragma("vm:entry-point")
|
||||||
@pragma('dyn-module:language-impl:callable')
|
@pragma('dyn-module:language-impl:callable')
|
||||||
base class _Set<E> extends _HashVMBase
|
base class _Set<E> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
SetMixin<E>,
|
SetMixin<E>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -1180,13 +1128,7 @@ base class _Set<E> extends _HashVMBase
|
|||||||
_LinkedHashSetMixin<E>
|
_LinkedHashSetMixin<E>
|
||||||
implements LinkedHashSet<E> {
|
implements LinkedHashSet<E> {
|
||||||
@pragma('dyn-module:language-impl:callable')
|
@pragma('dyn-module:language-impl:callable')
|
||||||
_Set() {
|
_Set();
|
||||||
_index = _uninitializedIndex;
|
|
||||||
_hashMask = _HashBase._UNINITIALIZED_HASH_MASK;
|
|
||||||
_data = _uninitializedData;
|
|
||||||
_usedData = 0;
|
|
||||||
_deletedKeys = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void addAll(Iterable<E> other) {
|
void addAll(Iterable<E> other) {
|
||||||
if (other case final _Set otherBase) {
|
if (other case final _Set otherBase) {
|
||||||
@@ -1205,7 +1147,7 @@ base class _Set<E> extends _HashVMBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
@pragma("vm:entry-point")
|
@pragma("vm:entry-point")
|
||||||
base class _ConstSet<E> extends _HashVMImmutableBase
|
base class _ConstSet<E> extends _LinkedHashImmutableBase
|
||||||
with
|
with
|
||||||
SetMixin<E>,
|
SetMixin<E>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -1227,7 +1169,7 @@ base class _ConstSet<E> extends _HashVMImmutableBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
mixin _ImmutableLinkedHashSetMixin<E>
|
mixin _ImmutableLinkedHashSetMixin<E>
|
||||||
on Set<E>, _LinkedHashSetMixin<E>, _HashAbstractImmutableBase {
|
on Set<E>, _LinkedHashSetMixin<E>, _LinkedHashImmutableBase {
|
||||||
E? lookup(Object? key) {
|
E? lookup(Object? key) {
|
||||||
if (_indexNullable == null) {
|
if (_indexNullable == null) {
|
||||||
_createIndex();
|
_createIndex();
|
||||||
@@ -1288,7 +1230,7 @@ mixin _ImmutableLinkedHashSetMixin<E>
|
|||||||
_CompactIteratorImmutable<E>(this, _data, _usedData, -1, 1);
|
_CompactIteratorImmutable<E>(this, _data, _usedData, -1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
base class CompactLinkedIdentityHashSet<E> extends _HashFieldBase
|
base class CompactLinkedIdentityHashSet<E> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
SetMixin<E>,
|
SetMixin<E>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
@@ -1311,7 +1253,7 @@ base class CompactLinkedIdentityHashSet<E> extends _HashFieldBase
|
|||||||
Set<R> cast<R>() => Set.castFrom<E, R>(this, newSet: _newEmpty);
|
Set<R> cast<R>() => Set.castFrom<E, R>(this, newSet: _newEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
base class CompactLinkedCustomHashSet<E> extends _HashFieldBase
|
base class CompactLinkedCustomHashSet<E> extends _LinkedHashBase
|
||||||
with
|
with
|
||||||
SetMixin<E>,
|
SetMixin<E>,
|
||||||
_HashBase,
|
_HashBase,
|
||||||
|
|||||||
Reference in New Issue
Block a user