Skip to content

Commit ebcf042

Browse files
mkustermanncommit-bot@chromium.org
authored andcommitted
[vm] Remove kFfiPointerCid/kFfiDynamicLibraryCid
There have been duplicate cids * kPointerCid / kFfiPointerCid * kDynamicLibraryCid / kFfiDynamicLibraryCid Only one of each made sense. This CL ensures we have only the former. TEST=ci Change-Id: Icdcef40c80ed09815da6074a774a02c707f6be37 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212592 Commit-Queue: Martin Kustermann <[email protected]> Reviewed-by: Daco Harkes <[email protected]>
1 parent e9b287a commit ebcf042

12 files changed

+34
-56
lines changed

runtime/vm/class_finalizer.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1374,7 +1374,7 @@ void ClassFinalizer::VerifyImplicitFieldOffsets() {
13741374
ASSERT(String::EqualsIgnoringPrivateKey(name, expected_name));
13751375

13761376
// Now verify field offsets of 'Pointer' class.
1377-
cls = class_table.At(kFfiPointerCid);
1377+
cls = class_table.At(kPointerCid);
13781378
error = cls.EnsureIsFinalized(thread);
13791379
ASSERT(error.IsNull());
13801380
ASSERT(cls.NumTypeParameters() == 1);

runtime/vm/class_id.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,9 @@ typedef uint16_t ClassIdTagType;
159159
V(Handle)
160160

161161
#define CLASS_LIST_FFI(V) \
162-
V(Pointer) \
163162
V(NativeFunction) \
164163
CLASS_LIST_FFI_TYPE_MARKER(V) \
165164
V(NativeType) \
166-
V(DynamicLibrary) \
167165
V(Struct)
168166

169167
#define DART_CLASS_LIST_TYPED_DATA(V) \
@@ -389,7 +387,7 @@ inline bool IsExternalTypedDataClassId(intptr_t index) {
389387

390388
inline bool IsFfiTypeClassId(intptr_t index) {
391389
switch (index) {
392-
case kFfiPointerCid:
390+
case kPointerCid:
393391
case kFfiNativeFunctionCid:
394392
#define CASE_FFI_CID(name) case kFfi##name##Cid:
395393
CLASS_LIST_FFI_TYPE_MARKER(CASE_FFI_CID)
@@ -403,6 +401,8 @@ inline bool IsFfiTypeClassId(intptr_t index) {
403401

404402
inline bool IsFfiPredefinedClassId(classid_t class_id) {
405403
switch (class_id) {
404+
case kPointerCid:
405+
case kDynamicLibraryCid:
406406
#define CASE_FFI_CID(name) case kFfi##name##Cid:
407407
CLASS_LIST_FFI(CASE_FFI_CID)
408408
#undef CASE_FFI_CID
@@ -414,11 +414,11 @@ inline bool IsFfiPredefinedClassId(classid_t class_id) {
414414
}
415415

416416
inline bool IsFfiPointerClassId(intptr_t index) {
417-
return index == kFfiPointerCid;
417+
return index == kPointerCid;
418418
}
419419

420420
inline bool IsFfiDynamicLibraryClassId(intptr_t index) {
421-
return index == kFfiDynamicLibraryCid;
421+
return index == kDynamicLibraryCid;
422422
}
423423

424424
inline bool IsInternalVMdefinedClassId(intptr_t index) {

runtime/vm/compiler/ffi/marshaller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class BaseMarshaller : public ZoneAllocated {
103103
// Requires boxing or unboxing.
104104
bool IsPointer(intptr_t arg_index) const {
105105
return AbstractType::Handle(zone_, CType(arg_index)).type_class_id() ==
106-
kFfiPointerCid;
106+
kPointerCid;
107107
}
108108
bool IsHandle(intptr_t arg_index) const {
109109
return AbstractType::Handle(zone_, CType(arg_index)).type_class_id() ==

runtime/vm/compiler/ffi/native_type.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ static PrimitiveType TypeRepresentation(classid_t class_id) {
372372
return kFloat;
373373
case kFfiDoubleCid:
374374
return kDouble;
375-
case kFfiPointerCid:
375+
case kPointerCid:
376376
return compiler::target::kWordSize == 4 ? kUint32 : kInt64;
377377
case kFfiVoidCid:
378378
return kVoid;

runtime/vm/compiler/ffi/recognized_method.cc

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ namespace compiler {
1313
namespace ffi {
1414

1515
classid_t ElementTypedDataCid(classid_t class_id) {
16-
ASSERT(class_id >= kFfiPointerCid);
17-
ASSERT(class_id < kFfiVoidCid);
18-
ASSERT(class_id != kFfiNativeFunctionCid);
1916
switch (class_id) {
2017
case kFfiInt8Cid:
2118
return kTypedDataInt8ArrayCid;
@@ -36,7 +33,7 @@ classid_t ElementTypedDataCid(classid_t class_id) {
3633
case kFfiIntPtrCid:
3734
return target::kWordSize == 4 ? kTypedDataInt32ArrayCid
3835
: kTypedDataInt64ArrayCid;
39-
case kFfiPointerCid:
36+
case kPointerCid:
4037
return target::kWordSize == 4 ? kTypedDataUint32ArrayCid
4138
: kTypedDataUint64ArrayCid;
4239
case kFfiFloatCid:
@@ -55,14 +52,16 @@ classid_t RecognizedMethodTypeArgCid(MethodRecognizer::Kind kind) {
5552
case MethodRecognizer::kFfiStore##type: \
5653
return kFfi##type##Cid;
5754
CLASS_LIST_FFI_NUMERIC(LOAD_STORE)
58-
LOAD_STORE(Pointer)
5955
#undef LOAD_STORE
6056
case MethodRecognizer::kFfiLoadFloatUnaligned:
6157
case MethodRecognizer::kFfiStoreFloatUnaligned:
6258
return kFfiFloatCid;
6359
case MethodRecognizer::kFfiLoadDoubleUnaligned:
6460
case MethodRecognizer::kFfiStoreDoubleUnaligned:
6561
return kFfiDoubleCid;
62+
case MethodRecognizer::kFfiLoadPointer:
63+
case MethodRecognizer::kFfiStorePointer:
64+
return kPointerCid;
6665
default:
6766
UNREACHABLE();
6867
}

runtime/vm/compiler/frontend/kernel_to_il.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,9 +1381,9 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
13811381
Box(LoadIndexedInstr::RepresentationOfArrayElement(typed_data_cid));
13821382
if (kind == MethodRecognizer::kFfiLoadPointer) {
13831383
const auto class_table = thread_->isolate_group()->class_table();
1384-
ASSERT(class_table->HasValidClassAt(kFfiPointerCid));
1384+
ASSERT(class_table->HasValidClassAt(kPointerCid));
13851385
const auto& pointer_class =
1386-
Class::ZoneHandle(H.zone(), class_table->At(kFfiPointerCid));
1386+
Class::ZoneHandle(H.zone(), class_table->At(kPointerCid));
13871387

13881388
// We find the reified type to use for the pointer allocation.
13891389
//
@@ -1441,9 +1441,9 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
14411441
if (kind == MethodRecognizer::kFfiStorePointer) {
14421442
// Do type check before anything untagged is on the stack.
14431443
const auto class_table = thread_->isolate_group()->class_table();
1444-
ASSERT(class_table->HasValidClassAt(kFfiPointerCid));
1444+
ASSERT(class_table->HasValidClassAt(kPointerCid));
14451445
const auto& pointer_class =
1446-
Class::ZoneHandle(H.zone(), class_table->At(kFfiPointerCid));
1446+
Class::ZoneHandle(H.zone(), class_table->At(kPointerCid));
14471447
const auto& pointer_type_param =
14481448
TypeParameter::ZoneHandle(pointer_class.TypeParameterAt(0));
14491449

@@ -1506,9 +1506,9 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
15061506
} break;
15071507
case MethodRecognizer::kFfiFromAddress: {
15081508
const auto class_table = thread_->isolate_group()->class_table();
1509-
ASSERT(class_table->HasValidClassAt(kFfiPointerCid));
1509+
ASSERT(class_table->HasValidClassAt(kPointerCid));
15101510
const auto& pointer_class =
1511-
Class::ZoneHandle(H.zone(), class_table->At(kFfiPointerCid));
1511+
Class::ZoneHandle(H.zone(), class_table->At(kPointerCid));
15121512

15131513
ASSERT(function.NumTypeParameters() == 1);
15141514
ASSERT_EQUAL(function.NumParameters(), 1);

runtime/vm/compiler/runtime_api.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,8 +418,8 @@ static uword GetInstanceSizeImpl(const dart::Class& handle) {
418418
return WeakProperty::InstanceSize();
419419
case kByteBufferCid:
420420
case kByteDataViewCid:
421-
case kFfiPointerCid:
422-
case kFfiDynamicLibraryCid:
421+
case kPointerCid:
422+
case kDynamicLibraryCid:
423423
#define HANDLE_CASE(clazz) case kFfi##clazz##Cid:
424424
CLASS_LIST_FFI_TYPE_MARKER(HANDLE_CASE)
425425
#undef HANDLE_CASE

runtime/vm/message_snapshot.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3128,8 +3128,6 @@ void MessageSerializer::Trace(Object* object) {
31283128
// here that cannot happen in reality)
31293129
ILLEGAL(DynamicLibrary)
31303130
ILLEGAL(Pointer)
3131-
ILLEGAL(FfiDynamicLibrary)
3132-
ILLEGAL(FfiPointer)
31333131

31343132
#undef ILLEGAL
31353133

runtime/vm/object.cc

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -662,12 +662,12 @@ void Object::InitVtables() {
662662

663663
{
664664
Pointer fake_handle;
665-
builtin_vtables_[kFfiPointerCid] = fake_handle.vtable();
665+
builtin_vtables_[kPointerCid] = fake_handle.vtable();
666666
}
667667

668668
{
669669
DynamicLibrary fake_handle;
670-
builtin_vtables_[kFfiDynamicLibraryCid] = fake_handle.vtable();
670+
builtin_vtables_[kDynamicLibraryCid] = fake_handle.vtable();
671671
}
672672

673673
#define INIT_VTABLE(clazz) \
@@ -2310,12 +2310,12 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
23102310
pending_classes.Add(cls);
23112311
RegisterClass(cls, Symbols::FfiNativeFunction(), lib);
23122312

2313-
cls = Class::NewPointerClass(kFfiPointerCid, isolate_group);
2313+
cls = Class::NewPointerClass(kPointerCid, isolate_group);
23142314
object_store->set_ffi_pointer_class(cls);
23152315
pending_classes.Add(cls);
23162316
RegisterClass(cls, Symbols::FfiPointer(), lib);
23172317

2318-
cls = Class::New<DynamicLibrary, RTN::DynamicLibrary>(kFfiDynamicLibraryCid,
2318+
cls = Class::New<DynamicLibrary, RTN::DynamicLibrary>(kDynamicLibraryCid,
23192319
isolate_group);
23202320
cls.set_instance_size(DynamicLibrary::InstanceSize(),
23212321
compiler::target::RoundedAllocationSize(
@@ -2433,10 +2433,10 @@ ErrorPtr Object::Init(IsolateGroup* isolate_group,
24332433
cls = Class::New<Instance, RTN::Instance>(kFfiNativeFunctionCid,
24342434
isolate_group);
24352435

2436-
cls = Class::NewPointerClass(kFfiPointerCid, isolate_group);
2436+
cls = Class::NewPointerClass(kPointerCid, isolate_group);
24372437
object_store->set_ffi_pointer_class(cls);
24382438

2439-
cls = Class::New<DynamicLibrary, RTN::DynamicLibrary>(kFfiDynamicLibraryCid,
2439+
cls = Class::New<DynamicLibrary, RTN::DynamicLibrary>(kDynamicLibraryCid,
24402440
isolate_group);
24412441

24422442
cls = Class::New<Instance, RTN::Instance>(kByteBufferCid, isolate_group,
@@ -2781,12 +2781,6 @@ ObjectPtr Object::Clone(const Object& orig,
27812781
bool Class::HasCompressedPointers() const {
27822782
const intptr_t cid = id();
27832783
switch (cid) {
2784-
// Only a couple of FFI cids correspond to actual Dart classes. so they're
2785-
// explicitly listed here.
2786-
case kFfiPointerCid:
2787-
return Pointer::ContainsCompressedPointers();
2788-
case kFfiDynamicLibraryCid:
2789-
return DynamicLibrary::ContainsCompressedPointers();
27902784
case kByteBufferCid:
27912785
return ByteBuffer::ContainsCompressedPointers();
27922786
#define HANDLE_CASE(clazz) \
@@ -4923,9 +4917,9 @@ const char* Class::GenerateUserVisibleName() const {
49234917
case kExternalTypedDataFloat64ArrayCid:
49244918
return Symbols::Float64List().ToCString();
49254919

4926-
case kFfiPointerCid:
4920+
case kPointerCid:
49274921
return Symbols::FfiPointer().ToCString();
4928-
case kFfiDynamicLibraryCid:
4922+
case kDynamicLibraryCid:
49294923
return Symbols::FfiDynamicLibrary().ToCString();
49304924

49314925
#if !defined(PRODUCT)
@@ -20280,7 +20274,7 @@ bool AbstractType::IsDartClosureType() const {
2028020274
}
2028120275

2028220276
bool AbstractType::IsFfiPointerType() const {
20283-
return HasTypeClass() && type_class_id() == kFfiPointerCid;
20277+
return HasTypeClass() && type_class_id() == kPointerCid;
2028420278
}
2028520279

2028620280
AbstractTypePtr AbstractType::UnwrapFutureOr() const {
@@ -25206,11 +25200,11 @@ PointerPtr Pointer::New(const AbstractType& type_arg,
2520625200
type_args = type_args.Canonicalize(thread, nullptr);
2520725201

2520825202
const Class& cls =
25209-
Class::Handle(IsolateGroup::Current()->class_table()->At(kFfiPointerCid));
25203+
Class::Handle(IsolateGroup::Current()->class_table()->At(kPointerCid));
2521025204
cls.EnsureIsAllocateFinalized(Thread::Current());
2521125205

2521225206
Pointer& result = Pointer::Handle(zone);
25213-
result ^= Object::Allocate(kFfiPointerCid, Pointer::InstanceSize(), space,
25207+
result ^= Object::Allocate(kPointerCid, Pointer::InstanceSize(), space,
2521425208
Pointer::ContainsCompressedPointers());
2521525209
result.SetTypeArguments(type_args);
2521625210
result.SetNativeAddress(native_address);
@@ -25228,7 +25222,7 @@ const char* Pointer::ToCString() const {
2522825222
DynamicLibraryPtr DynamicLibrary::New(void* handle, Heap::Space space) {
2522925223
DynamicLibrary& result = DynamicLibrary::Handle();
2523025224
result ^=
25231-
Object::Allocate(kFfiDynamicLibraryCid, DynamicLibrary::InstanceSize(),
25225+
Object::Allocate(kDynamicLibraryCid, DynamicLibrary::InstanceSize(),
2523225226
space, DynamicLibrary::ContainsCompressedPointers());
2523325227
NoSafepointScope no_safepoint;
2523425228
result.SetHandle(handle);

runtime/vm/object_graph_copy.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,8 +593,6 @@ class ObjectCopyBase {
593593
// here that cannot happen in reality)
594594
HANDLE_ILLEGAL_CASE(DynamicLibrary)
595595
HANDLE_ILLEGAL_CASE(Pointer)
596-
HANDLE_ILLEGAL_CASE(FfiDynamicLibrary)
597-
HANDLE_ILLEGAL_CASE(FfiPointer)
598596
HANDLE_ILLEGAL_CASE(FunctionType)
599597
HANDLE_ILLEGAL_CASE(MirrorReference)
600598
HANDLE_ILLEGAL_CASE(ReceivePort)

runtime/vm/raw_object.cc

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ intptr_t UntaggedObject::HeapSizeFromClass(uword tags) const {
174174
break;
175175
}
176176
#undef SIZE_FROM_CLASS
177-
case kFfiPointerCid:
177+
case kPointerCid:
178178
instance_size = Pointer::InstanceSize();
179179
break;
180180
case kTypeArgumentsCid: {
@@ -327,17 +327,6 @@ intptr_t UntaggedObject::VisitPointersPredefined(ObjectPointerVisitor* visitor,
327327
size = UntaggedInstance::VisitInstancePointers(raw_obj, visitor);
328328
break;
329329
}
330-
case kFfiPointerCid: {
331-
PointerPtr raw_obj = static_cast<PointerPtr>(this);
332-
size = UntaggedPointer::VisitPointerPointers(raw_obj, visitor);
333-
break;
334-
}
335-
case kFfiDynamicLibraryCid: {
336-
DynamicLibraryPtr raw_obj = static_cast<DynamicLibraryPtr>(this);
337-
size =
338-
UntaggedDynamicLibrary::VisitDynamicLibraryPointers(raw_obj, visitor);
339-
break;
340-
}
341330
#define RAW_VISITPOINTERS(clazz) case kFfi##clazz##Cid:
342331
CLASS_LIST_FFI_TYPE_MARKER(RAW_VISITPOINTERS) {
343332
// NativeType do not have any fields or type arguments.

runtime/vm/service.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5226,7 +5226,7 @@ static void GetDefaultClassesAliases(Thread* thread, JSONStream* js) {
52265226
{ \
52275227
JSONArray internals(&map, #clazz); \
52285228
DEFINE_ADD_VALUE_F_CID(TypedData##clazz) \
5229-
DEFINE_ADD_VALUE_F_CID(TypedData##clazz) \
5229+
DEFINE_ADD_VALUE_F_CID(TypedData##clazz##View) \
52305230
DEFINE_ADD_VALUE_F_CID(ExternalTypedData##clazz) \
52315231
}
52325232
CLASS_LIST_TYPED_DATA(DEFINE_ADD_MAP_KEY)

0 commit comments

Comments
 (0)