From 7add820f0d3e5085553ff9eaec9dd36cba8e809c Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 5 Aug 2021 11:12:23 +0300 Subject: [PATCH] [JS IC] Simplify code a bit --- .../ir/backend/js/ic/IcModuleDeserializer.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IcModuleDeserializer.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IcModuleDeserializer.kt index d56ad638e5d..069f3bef74b 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IcModuleDeserializer.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/ic/IcModuleDeserializer.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.ir.util.isEffectivelyExternal import org.jetbrains.kotlin.library.IrLibrary import org.jetbrains.kotlin.library.KotlinAbiVersion +import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.impl.IrLongArrayMemoryReader import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite import org.jetbrains.kotlin.backend.common.serialization.proto.IrFile as ProtoFile @@ -33,7 +34,7 @@ class IcModuleDeserializer( override val klib: IrLibrary, override val strategy: DeserializationStrategy, private val containsErrorCode: Boolean = false, -) : IrModuleDeserializer(moduleDescriptor, KotlinAbiVersion.CURRENT) { +) : IrModuleDeserializer(moduleDescriptor, (klib as KotlinLibrary).versions.abiVersion ?: KotlinAbiVersion.CURRENT) { private val fileToDeserializerMap = mutableMapOf() @@ -108,7 +109,6 @@ class IcModuleDeserializer( if (!symbol.isBound) { topLevelSignature.originalEnqueue(icDeserializer) idSig.enqueue(icDeserializer) - linker.modulesWithReachableTopLevels.add(this) } return symbol @@ -219,16 +219,19 @@ class IcModuleDeserializer( val icFileDeserializer = fileQueue.removeFirst() val signature = signatureQueue.removeFirst() - val declaration = icFileDeserializer.deserializeDeclaration(signature) ?: icFileDeserializer.deserializeAnyDeclaration(signature) ?: continue + val declaration = + icFileDeserializer.deserializeDeclaration(signature) ?: icFileDeserializer.deserializeAnyDeclaration(signature) - icFileDeserializer.injectCarriers(declaration, signature) + if (declaration != null) { + icFileDeserializer.injectCarriers(declaration, signature) - icFileDeserializer.mappingsDeserializer(signature, declaration) + icFileDeserializer.mappingsDeserializer(signature, declaration) - // Make sure all members are loaded - if (declaration is IrClass) { - icFileDeserializer.loadClassOrder(signature)?.let { - classToDeclarationSymbols[declaration] = it + // Make sure all members are loaded + if (declaration is IrClass) { + icFileDeserializer.loadClassOrder(signature)?.let { + classToDeclarationSymbols[declaration] = it + } } } }