From 2491d73b1e2a2e1464244a3b4a57550bd687f5d9 Mon Sep 17 00:00:00 2001 From: vmishenev Date: Fri, 25 Nov 2022 17:14:43 +0200 Subject: [PATCH] Dispose `AnalysisEnvironment` --- .../org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt | 7 +++++-- .../transformers/pages/samples/SamplesTransformer.kt | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt index b946c5bd3c..229adc8da2 100644 --- a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt +++ b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/EnvironmentAndFacade.kt @@ -30,7 +30,7 @@ internal fun createEnvironmentAndFacade( val environment = createCoreEnvironment() val (facade, _) = createResolutionFacade(environment, analysisConfiguration.ignoreCommonBuiltIns) - EnvironmentAndFacade(environment, facade) + EnvironmentAndFacade(environment, facade, this) } class DokkaMessageCollector(private val logger: DokkaLogger) : MessageCollector { @@ -51,7 +51,10 @@ class DokkaMessageCollector(private val logger: DokkaLogger) : MessageCollector } // It is not data class due to ill-defined equals -class EnvironmentAndFacade(val environment: KotlinCoreEnvironment, val facade: DokkaResolutionFacade) { +class EnvironmentAndFacade(val environment: KotlinCoreEnvironment, val facade: DokkaResolutionFacade, private val analysisEnvironment: AnalysisEnvironment) { operator fun component1() = environment operator fun component2() = facade + protected fun finalize() { + analysisEnvironment.dispose() + } } diff --git a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt index ed4c479258..a1a55a8429 100644 --- a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt +++ b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt @@ -71,7 +71,7 @@ abstract class SamplesTransformer(val context: DokkaContext) : PageTransformer { val environment = createCoreEnvironment() val (facade, _) = createResolutionFacade(environment) - EnvironmentAndFacade(environment, facade) + EnvironmentAndFacade(environment, facade, this) } }