[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:
sergey.bogolepov
2020-09-28 19:11:04 +07:00
committed by Sergey Bogolepov
parent da458f9a02
commit 077ff4840a
@@ -353,6 +353,11 @@ internal val useInternalAbiPhase = makeKonanModuleOpPhase(
if (!irClass.isCompanion || context.llvmModuleSpecification.containsDeclaration(irClass)) {
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) {
context.irFactory.buildFun {
name = InternalAbi.getCompanionObjectAccessorName(irClass)