From f55c3befb3c97ca9d1d923345103409844dab3f7 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 12 Feb 2013 01:50:30 +0400 Subject: [PATCH] Disposal on error when processing module script. --- .../jvm/compiler/CompileEnvironmentUtil.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java index 3b7cec425b0..e94220302f1 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CompileEnvironmentUtil.java @@ -99,17 +99,20 @@ public class CompileEnvironmentUtil { configuration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, moduleScriptFile); configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector); - JetCoreEnvironment scriptEnvironment = new JetCoreEnvironment(disposable, configuration); + List modules; + try { + JetCoreEnvironment scriptEnvironment = new JetCoreEnvironment(disposable, configuration); + GenerationState generationState = KotlinToJVMBytecodeCompiler.analyzeAndGenerate(scriptEnvironment, false); + if (generationState == null) { + throw new CompileEnvironmentException("Module script " + moduleScriptFile + " analyze failed:\n" + + loadModuleScriptText(moduleScriptFile)); + } - GenerationState generationState = KotlinToJVMBytecodeCompiler.analyzeAndGenerate(scriptEnvironment, false); - if (generationState == null) { - throw new CompileEnvironmentException("Module script " + moduleScriptFile + " analyze failed:\n" + - loadModuleScriptText(moduleScriptFile)); + modules = runDefineModules(paths, moduleScriptFile, generationState.getFactory()); + } + finally { + Disposer.dispose(disposable); } - - List modules = runDefineModules(paths, moduleScriptFile, generationState.getFactory()); - - Disposer.dispose(disposable); if (modules == null) { throw new CompileEnvironmentException("Module script " + moduleScriptFile + " compilation failed");