From cadd12fe44f37ce5c40652a800820eca8b09cfb7 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Wed, 9 Feb 2005 21:33:31 +0300 Subject: [PATCH] Memory leak fixed. Area instances connected to project and module haven't been disposed at their disposal. --- .../openapi/module/impl/ModuleImpl.java | 17 ++++++++++------- .../openapi/project/impl/ProjectImpl.java | 7 +++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/source/com/intellij/openapi/module/impl/ModuleImpl.java b/source/com/intellij/openapi/module/impl/ModuleImpl.java index fabdb8a95881..ca57298d19b2 100644 --- a/source/com/intellij/openapi/module/impl/ModuleImpl.java +++ b/source/com/intellij/openapi/module/impl/ModuleImpl.java @@ -1,28 +1,30 @@ package com.intellij.openapi.module.impl; -import com.intellij.application.options.PathMacros; import com.intellij.application.options.ExpandMacroToPathMap; import com.intellij.application.options.PathMacroMap; +import com.intellij.application.options.PathMacros; import com.intellij.application.options.ReplacePathToMacroMap; import com.intellij.ide.plugins.PluginDescriptor; import com.intellij.ide.plugins.PluginManager; -import com.intellij.openapi.application.ex.ApplicationEx; -import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.application.ex.DecodeDefaultsUtil; import com.intellij.openapi.components.BaseComponent; import com.intellij.openapi.components.impl.ComponentManagerImpl; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.module.*; +import com.intellij.openapi.extensions.Extensions; +import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleComponent; +import com.intellij.openapi.module.ModuleType; +import com.intellij.openapi.module.ModuleTypeManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.impl.BaseFileConfigurable; import com.intellij.openapi.project.impl.ProjectImpl; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.InvalidDataException; +import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.*; import com.intellij.openapi.vfs.pointers.VirtualFilePointer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; -import com.intellij.openapi.extensions.AreaInstance; -import com.intellij.openapi.extensions.Extensions; import com.intellij.pom.PomModel; import com.intellij.pom.PomModule; import com.intellij.pom.core.impl.PomModuleImpl; @@ -180,6 +182,7 @@ public class ModuleImpl extends BaseFileConfigurable implements Module { disposeComponents(); myIsDisposed = true; VirtualFileManager.getInstance().removeVirtualFileListener(myVirtualFileListener); + Extensions.disposeArea(this); } public VirtualFile[] getConfigurationFiles() { diff --git a/source/com/intellij/openapi/project/impl/ProjectImpl.java b/source/com/intellij/openapi/project/impl/ProjectImpl.java index dc4d9ac6bfd5..f1ab1313458d 100644 --- a/source/com/intellij/openapi/project/impl/ProjectImpl.java +++ b/source/com/intellij/openapi/project/impl/ProjectImpl.java @@ -8,14 +8,14 @@ import com.intellij.ide.plugins.PluginDescriptor; import com.intellij.ide.plugins.PluginManager; import com.intellij.ide.startup.StartupManagerEx; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.ex.ApplicationEx; -import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.application.ex.DecodeDefaultsUtil; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.components.BaseComponent; import com.intellij.openapi.components.ProjectComponent; import com.intellij.openapi.components.impl.ComponentManagerImpl; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.extensions.AreaInstance; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.module.impl.ModuleImpl; @@ -35,8 +35,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.openapi.vfs.pointers.VirtualFilePointer; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; -import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.extensions.AreaInstance; import com.intellij.pom.PomModel; import com.intellij.util.ArrayUtil; import org.jdom.Document; @@ -484,6 +482,7 @@ public class ProjectImpl extends BaseFileConfigurable implements ProjectEx, Area } disposeComponents(); + Extensions.disposeArea(this); myDisposed = true; }