GradleBuildRoot: don't store references to virtual files

This commit is contained in:
Sergey Rostov
2020-05-08 01:57:50 +03:00
parent a97e9f641a
commit 037ea224a4
3 changed files with 4 additions and 7 deletions
@@ -46,7 +46,7 @@ sealed class GradleBuildRoot {
abstract val projectRoots: Collection<String> abstract val projectRoots: Collection<String>
private val dir: VirtualFile? val dir: VirtualFile?
get() = LocalFileSystem.getInstance().findFileByPath(pathPrefix) get() = LocalFileSystem.getInstance().findFileByPath(pathPrefix)
private lateinit var lastModifiedFiles: LastModifiedFiles private lateinit var lastModifiedFiles: LastModifiedFiles
@@ -107,15 +107,13 @@ sealed class GradleBuildRoot {
*/ */
class Imported( class Imported(
override val manager: GradleBuildRootsManager, override val manager: GradleBuildRootsManager,
val dir: VirtualFile, override val pathPrefix: String,
val javaHome: File?, val javaHome: File?,
val data: GradleBuildRootData val data: GradleBuildRootData
) : Linked() { ) : Linked() {
val project: Project val project: Project
get() = manager.project get() = manager.project
override val pathPrefix: String = dir.path
override val projectRoots: Collection<String> override val projectRoots: Collection<String>
get() = data.projectRoots get() = data.projectRoots
@@ -202,7 +202,7 @@ class GradleBuildRootsManager(val project: Project) : ScriptingSupport() {
val mergedData = if (build.failed && root is GradleBuildRoot.Imported) merge(root.data, newData) else newData val mergedData = if (build.failed && root is GradleBuildRoot.Imported) merge(root.data, newData) else newData
val newSupport = tryCreateImportedRoot(build.workingDir) { mergedData } ?: return val newSupport = tryCreateImportedRoot(build.workingDir) { mergedData } ?: return
GradleBuildRootDataSerializer.write(newSupport.dir, mergedData) GradleBuildRootDataSerializer.write(newSupport.dir ?: return, mergedData)
add(newSupport) add(newSupport)
@@ -335,7 +335,7 @@ class GradleBuildRootsManager(val project: Project) : ScriptingSupport() {
.getExecutionSettings<GradleExecutionSettings>(project, externalProjectPath, GradleConstants.SYSTEM_ID) .getExecutionSettings<GradleExecutionSettings>(project, externalProjectPath, GradleConstants.SYSTEM_ID)
.javaHome?.let { File(it) } .javaHome?.let { File(it) }
return GradleBuildRoot.Imported(this, buildRoot, javaHome, data) return GradleBuildRoot.Imported(this, externalProjectPath, javaHome, data)
} }
private fun add(newRoot: GradleBuildRoot.Linked) { private fun add(newRoot: GradleBuildRoot.Linked) {
-1
View File
@@ -14,7 +14,6 @@
<extensions defaultExtensionNs="org.jetbrains.kotlin.scripting.idea"> <extensions defaultExtensionNs="org.jetbrains.kotlin.scripting.idea">
<listener order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptListener"/> <listener order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptListener"/>
<listener order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.legacy.GradleLegacyScriptListener"/>
<loader order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.legacy.GradleLegacyScriptConfigurationLoader"/> <loader order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.legacy.GradleLegacyScriptConfigurationLoader"/>