From 895b26ade9528af490bd7d64c5f463db3d4d1fec Mon Sep 17 00:00:00 2001 From: Sergey Savenko Date: Wed, 3 Dec 2014 21:24:53 +0300 Subject: [PATCH] JBListTable: prevent a memory leak A memory leak occurring when the following is true: 1) JBListTable object was created but never added 2) It's onRemoveDisposable was not registered as a child of another disposable --- .../src/com/intellij/util/ui/table/JBListTable.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java b/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java index 9c341e6e3960..89cd47453b92 100644 --- a/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java +++ b/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java @@ -246,6 +246,12 @@ public abstract class JBListTable { return editor.getTableCellEditorComponent(this, value, isSelected, row, column); } + @Override + public void addNotify() { + super.addNotify(); + Disposer.register(myOnRemoveDisposable, myRowResizeAnimator); + } + @Override public void removeNotify() { super.removeNotify(); @@ -254,7 +260,6 @@ public abstract class JBListTable { }; mainTable.setStriped(true); myRowResizeAnimator = new RowResizeAnimator(mainTable); - Disposer.register(myOnRemoveDisposable, myRowResizeAnimator); } public void stopEditing() {