From 19b5fda75082dff401d29ed722f54aa7e012a3ba Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Fri, 31 Jul 2020 15:35:33 +0300 Subject: [PATCH] [KLIB] Do not duplicate origin mapping per file --- .../serialization/IrFileDeserializer.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt index 7834a679782..c29ef995e4c 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt @@ -1368,23 +1368,23 @@ abstract class IrFileDeserializer( } } - private val allKnownDeclarationOrigins = - IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class - - private val declarationOriginIndex = - allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name } + companion object { + private val allKnownDeclarationOrigins = + IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class + private val declarationOriginIndex = + allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name } + private val allKnownStatementOrigins = + IrStatementOrigin::class.nestedClasses.toList() + private val statementOriginIndex = + allKnownStatementOrigins.mapNotNull { it.objectInstance as? IrStatementOriginImpl }.associateBy { it.debugName } + } private fun deserializeIrDeclarationOrigin(protoName: Int): IrDeclarationOriginImpl { val originName = deserializeString(protoName) return declarationOriginIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {} } - private val allKnownStatementOrigins = - IrStatementOrigin::class.nestedClasses.toList() - private val statementOriginIndex = - allKnownStatementOrigins.map { it.objectInstance as? IrStatementOriginImpl }.filterNotNull().associateBy { it.debugName } - fun deserializeIrStatementOrigin(protoName: Int): IrStatementOrigin { return deserializeString(protoName).let { val componentPrefix = "COMPONENT_"