fix memory leak on reachable find dialog
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Wed, 10 Mar 2010 19:19:43 +0000 (22:19 +0300)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Thu, 11 Mar 2010 12:25:24 +0000 (15:25 +0300)
platform/lang-impl/src/com/intellij/find/impl/FindDialog.java
platform/lang-impl/src/com/intellij/find/impl/FindManagerImpl.java

index 650f949d0e51b9874db2e9e35a415a8af128901f..40d6b71065cb05889f40ea0a04fa0667026a4c5c 100644 (file)
@@ -68,7 +68,7 @@ import java.util.Map;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
-final class FindDialog extends DialogWrapper {
+class FindDialog extends DialogWrapper {
   private static final Logger LOG = Logger.getInstance("#com.intellij.find.impl.FindDialog");
 
   private ComboBox myInputComboBox;
index 300c0e4890e2683b0d7e7a9e42e76815955e13a5..0f924d4274a4579a2f38554a80c7610417c54a66 100644 (file)
@@ -188,7 +188,13 @@ public class FindManagerImpl extends FindManager implements PersistentStateCompo
           }
           okHandler.run();
         }
-      });
+      }) {
+        @Override
+        protected void dispose() {
+          super.dispose();
+          myFindDialog = null; // avoid strong ref!
+        }
+      };
       myFindDialog.setModal(false);
     }
     myFindDialog.show();