Skip to content

Commit 7850144

Browse files
author
Greg Parker
authored
[runtime] Remove _swift_getSuperclass(). (#12988)
There are too many superclass-lookup functions. This one does not pull its own weight.
1 parent 92e2a25 commit 7850144

File tree

4 files changed

+9
-15
lines changed

4 files changed

+9
-15
lines changed

stdlib/public/runtime/Casting.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ _dynamicCastClassMetatype(const ClassMetadata *sourceType,
259259
if (sourceType == targetType) {
260260
return sourceType;
261261
}
262-
sourceType = _swift_getSuperclass(sourceType);
262+
sourceType = sourceType->SuperClass;
263263
} while (sourceType);
264264

265265
return nullptr;

stdlib/public/runtime/Private.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,6 @@ namespace swift {
116116
LLVM_LIBRARY_VISIBILITY
117117
const ClassMetadata *_swift_getClass(const void *object);
118118

119-
static inline
120-
const ClassMetadata *_swift_getSuperclass(const ClassMetadata *theClass) {
121-
return theClass->SuperClass;
122-
}
123-
124119
LLVM_LIBRARY_VISIBILITY
125120
bool usesNativeSwiftReferenceCounting(const ClassMetadata *theClass);
126121

stdlib/public/runtime/Reflection.mm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -761,14 +761,14 @@ void swift_ClassMirror_subscript(String *outString,
761761
intptr_t swift_ObjCMirror_count(HeapObject *owner,
762762
const OpaqueValue *value,
763763
const Metadata *type) {
764-
auto isa = (Class)type;
764+
auto isa = (const ClassMetadata *)type;
765765

766766
unsigned count = 0;
767767
// ObjC makes no guarantees about the state of ivars, so we can't safely
768768
// introspect them in the general case.
769769

770770
// The superobject counts as a child.
771-
if (_swift_getSuperclass((const ClassMetadata*) isa))
771+
if (isa->SuperClass)
772772
count += 1;
773773

774774
swift_release(owner);
@@ -790,7 +790,7 @@ void swift_ObjCMirror_subscript(String *outString,
790790
auto isa = (Class)type;
791791

792792
// If there's a superclass, it becomes the first child.
793-
if (auto sup = (Class) _swift_getSuperclass((const ClassMetadata*) isa)) {
793+
if (auto sup = class_getSuperclass(isa)) {
794794
if (i == 0) {
795795
const char *supName = class_getName(sup);
796796
new (outString) String(supName, strlen(supName));

stdlib/public/runtime/SwiftObject.mm

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,15 +198,14 @@ - (Class)class {
198198
return _swift_getObjCClassOfAllocated(self);
199199
}
200200
+ (Class)superclass {
201-
return class_const_cast(_swift_getSuperclass((const ClassMetadata*) self));
201+
return (Class)((const ClassMetadata*) self)->SuperClass;
202202
}
203203
- (Class)superclass {
204-
return
205-
class_const_cast(_swift_getSuperclass(_swift_getClassOfAllocated(self)));
204+
return (Class)_swift_getClassOfAllocated(self)->SuperClass;
206205
}
207206

208207
+ (BOOL)isMemberOfClass:(Class)cls {
209-
return cls == _swift_getObjCClassOfAllocated(self);
208+
return cls == _swift_getObjCClassOfAllocated(self);
210209
}
211210

212211
- (BOOL)isMemberOfClass:(Class)cls {
@@ -293,7 +292,7 @@ - (void)dealloc {
293292

294293
- (BOOL)isKindOfClass:(Class)someClass {
295294
for (auto cls = _swift_getClassOfAllocated(self); cls != nullptr;
296-
cls = _swift_getSuperclass(cls))
295+
cls = cls->SuperClass)
297296
if (cls == (const ClassMetadata*) someClass)
298297
return YES;
299298

@@ -302,7 +301,7 @@ - (BOOL)isKindOfClass:(Class)someClass {
302301

303302
+ (BOOL)isSubclassOfClass:(Class)someClass {
304303
for (auto cls = (const ClassMetadata*) self; cls != nullptr;
305-
cls = _swift_getSuperclass(cls))
304+
cls = cls->SuperClass)
306305
if (cls == (const ClassMetadata*) someClass)
307306
return YES;
308307

0 commit comments

Comments
 (0)