GradleBuildRoot: don't store references to virtual files
This commit is contained in:
+2
-4
@@ -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
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -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) {
|
||||||
|
|||||||
@@ -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"/>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user