From 1383c31caffb0b865939e457aff4506bcbce1475 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Tue, 26 Jan 2021 22:33:36 +0300 Subject: [PATCH] JVM_IR: use threadLocal in GlobalInlineContext --- .../jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt index da041aaebe7..3b155165690 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/GlobalInlineContext.kt @@ -9,15 +9,16 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.diagnostics.DiagnosticSink import org.jetbrains.kotlin.diagnostics.Errors +import org.jetbrains.kotlin.utils.threadLocal import java.util.* class GlobalInlineContext(private val diagnostics: DiagnosticSink) { // Ordered set of declarations and inline calls being generated right now. // No call in it should point to a declaration that's before it in the stack. - private val inlineCallsAndDeclarations = LinkedList() - private val inlineDeclarationSet = mutableSetOf() + private val inlineCallsAndDeclarations by threadLocal { LinkedList() } + private val inlineDeclarationSet by threadLocal { mutableSetOf() } - private val typesUsedInInlineFunctions = LinkedList>() + private val typesUsedInInlineFunctions by threadLocal { LinkedList>() } fun enterDeclaration(descriptor: CallableDescriptor) { assert(descriptor.original !in inlineDeclarationSet) { "entered inlining cycle on $descriptor" }