RUBY-18534: got rid of memory leak in RubyProjectStructureConfigurable
authorAlexandr Evstigneev <Alexandr.Evstigneev@jetbrains.com>
Tue, 13 Sep 2016 08:43:40 +0000 (11:43 +0300)
committerAlexandr Evstigneev <Alexandr.Evstigneev@jetbrains.com>
Tue, 13 Sep 2016 08:48:31 +0000 (11:48 +0300)
Implemented getter for parentDisposable in TabbedConfigurable, allowing to access disposable, created in invocation of super-class constructor and disposing in disposeUIResources
Also, renamed Tabbedconfigurable#myParent field to unambiguous myParentDisposable

platform/platform-impl/src/com/intellij/openapi/options/TabbedConfigurable.java

index 40c04bec28afbf6b63f04f39efd7569d05f14d0a..217339f748f09b29f9f8b85e34f7a71b6ecf4997 100644 (file)
@@ -27,15 +27,15 @@ import javax.swing.*;
  */
 public abstract class TabbedConfigurable extends CompositeConfigurable<Configurable> {
   protected TabbedPaneWrapper myTabbedPane;
-  private final Disposable myParent;
+  private final Disposable myParentDisposable;
 
-  protected TabbedConfigurable(@NotNull Disposable parent) {
-    myParent = parent;
+  protected TabbedConfigurable(@NotNull Disposable parentDisposable) {
+    myParentDisposable = parentDisposable;
   }
 
   @Override
   public JComponent createComponent() {
-    myTabbedPane = new TabbedPaneWrapper(myParent);
+    myTabbedPane = new TabbedPaneWrapper(myParentDisposable);
     createConfigurableTabs();
     final JComponent component = myTabbedPane.getComponent();
     component.setPreferredSize(JBUI.size(500, 400));
@@ -53,4 +53,8 @@ public abstract class TabbedConfigurable extends CompositeConfigurable<Configura
     myTabbedPane = null;
     super.disposeUIResources();
   }
+
+  public Disposable getParentDisposable() {
+    return myParentDisposable;
+  }
 }