[Cache][ObjC] Do not access cached Obj-C metaclass via getter
Obj-C metaclasses (that are represented as Kotlin companions) are handled with intrinsic in codegen so there is no need to call globalAccessor to access them.
This commit is contained in:
committed by
Sergey Bogolepov
parent
da458f9a02
commit
077ff4840a
+5
@@ -353,6 +353,11 @@ internal val useInternalAbiPhase = makeKonanModuleOpPhase(
|
|||||||
if (!irClass.isCompanion || context.llvmModuleSpecification.containsDeclaration(irClass)) {
|
if (!irClass.isCompanion || context.llvmModuleSpecification.containsDeclaration(irClass)) {
|
||||||
return expression
|
return expression
|
||||||
}
|
}
|
||||||
|
val parent = irClass.parentAsClass
|
||||||
|
if (parent.isObjCClass()) {
|
||||||
|
// Access to Obj-C metaclass is done via intrinsic.
|
||||||
|
return expression
|
||||||
|
}
|
||||||
val accessor = accessors.getOrPut(irClass) {
|
val accessor = accessors.getOrPut(irClass) {
|
||||||
context.irFactory.buildFun {
|
context.irFactory.buildFun {
|
||||||
name = InternalAbi.getCompanionObjectAccessorName(irClass)
|
name = InternalAbi.getCompanionObjectAccessorName(irClass)
|
||||||
|
|||||||
Reference in New Issue
Block a user