From e3940bac97bb57d8982438e40f3d98cd81bd0781 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Wed, 28 Oct 2015 14:12:02 +0300 Subject: [PATCH] IDEA-143449 Editor leak on closing all projects After-review ROLLBACK --- .../com/intellij/ui/EditorComboBoxEditor.java | 17 ++--------------- .../src/com/intellij/ui/EditorTextField.java | 2 +- .../ui/BreakpointsDialogFactory.java | 15 --------------- 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/EditorComboBoxEditor.java b/platform/platform-impl/src/com/intellij/ui/EditorComboBoxEditor.java index a4bbcb17c61d..60371365f2c3 100644 --- a/platform/platform-impl/src/com/intellij/ui/EditorComboBoxEditor.java +++ b/platform/platform-impl/src/com/intellij/ui/EditorComboBoxEditor.java @@ -17,12 +17,9 @@ package com.intellij.ui; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; -import com.intellij.openapi.project.ProjectManagerAdapter; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; @@ -37,21 +34,11 @@ public class EditorComboBoxEditor implements ComboBoxEditor{ private final EditorTextField myTextField; @NonNls protected static final String NAME = "ComboBox.textField"; - public EditorComboBoxEditor(final Project project, FileType fileType) { + public EditorComboBoxEditor(Project project, FileType fileType) { myTextField = new ComboboxEditorTextField((Document)null, project, fileType) { @Override protected EditorEx createEditor() { - final EditorEx editor = super.createEditor(); - ProjectManagerAdapter adapter = new ProjectManagerAdapter() { - @Override - public void projectClosing(Project project) { - if (!editor.isDisposed()) { - EditorFactory.getInstance().releaseEditor(editor); - } - } - }; - ProjectManager.getInstance().addProjectManagerListener(adapter, project); - + EditorEx editor = super.createEditor(); onEditorCreate(editor); return editor; } diff --git a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java index 6b0a8e1573d4..359ce268166f 100644 --- a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java +++ b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java @@ -314,7 +314,7 @@ public class EditorTextField extends NonOpaquePanel implements DocumentListener, } void releaseEditor(@NotNull final Editor editor) { - if (myProject != null && !myProject.isDisposed() && myIsViewer) { + if (myProject != null && myIsViewer) { final PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument()); if (psiFile != null) { DaemonCodeAnalyzer.getInstance(myProject).setHighlightingEnabled(psiFile, true); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java index ad0fedaa5402..e0fe6457aff1 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialogFactory.java @@ -18,8 +18,6 @@ package com.intellij.xdebugger.impl.breakpoints.ui; import com.intellij.openapi.Disposable; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; -import com.intellij.openapi.project.ProjectManagerAdapter; import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.util.Disposer; import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil; @@ -63,11 +61,6 @@ public class BreakpointsDialogFactory { if (myDialogShowing != null) { return; } - final Disposable disposable = new Disposable() { - @Override - public void dispose() { - } - }; final BreakpointsDialog dialog = new BreakpointsDialog(myProject, initialBreakpoint != null ? initialBreakpoint : myBreakpoint, XBreakpointUtil.collectPanelProviders()) { @Override @@ -79,16 +72,8 @@ public class BreakpointsDialogFactory { myDialogShowing = null; super.dispose(); - Disposer.dispose(disposable); } }; - ProjectManagerAdapter adapter = new ProjectManagerAdapter() { - @Override - public void projectClosing(Project project) { - dialog.dispose(); - } - }; - ProjectManager.getInstance().addProjectManagerListener(adapter, disposable); if (myBalloonToHide != null) { if (!myBalloonToHide.isDisposed()) {