[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
@@ -646,6 +646,11 @@ void Object::InitVtables() {
|
||||
builtin_vtables_[kUnmodifiableByteDataViewCid] = fake_handle.vtable();
|
||||
}
|
||||
|
||||
{
|
||||
LinkedHashBase fake_handle;
|
||||
builtin_vtables_[kLinkedHashBaseCid] = fake_handle.vtable();
|
||||
}
|
||||
|
||||
{
|
||||
Instance fake_handle;
|
||||
builtin_vtables_[kByteBufferCid] = fake_handle.vtable();
|
||||
@@ -2143,6 +2148,18 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
|
||||
|
||||
ASSERT(!lib.IsNull());
|
||||
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);
|
||||
object_store->set_map_impl_class(cls);
|
||||
cls.set_type_arguments_field_offset(Map::type_arguments_offset(),
|
||||
@@ -2624,6 +2641,10 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
|
||||
isolate_group);
|
||||
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);
|
||||
object_store->set_map_impl_class(cls);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user