From f219b19ddfc02ab7f0fb8de52da9727a1d243dda Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 25 Mar 2015 20:07:02 +0300 Subject: [PATCH] diff: fix memory leak in dirdiff installFileCompletion() with null Disposable will register itself on DialogWrapper from focused component (or on application-wide Disposable "ui"). We can show dirdiff in FrameWrapper/ToolWindow now, so we should provide right Disposable. --- .../intellij/openapi/diff/impl/dir/DirDiffPanel.form | 4 ++-- .../intellij/openapi/diff/impl/dir/DirDiffPanel.java | 3 +++ .../openapi/ui/TextFieldWithBrowseButton.java | 12 ++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.form b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.form index 1e0288175eda..253a1e59067d 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.form +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.form @@ -55,7 +55,7 @@ - + @@ -72,7 +72,7 @@ - + diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java index f76e2d45e776..2aa56954dd65 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java @@ -511,6 +511,9 @@ public class DirDiffPanel implements Disposable, DataProvider { } private void createUIComponents() { + mySourceDirField = new TextFieldWithBrowseButton(null, this); + myTargetDirField = new TextFieldWithBrowseButton(null, this); + final AtomicBoolean callUpdate = new AtomicBoolean(true); myRootPanel = new JPanel(new BorderLayout()) { @Override diff --git a/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java b/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java index 04c8438f3897..83324bfdd387 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/TextFieldWithBrowseButton.java @@ -41,15 +41,23 @@ public class TextFieldWithBrowseButton extends ComponentWithBrowseButton