From 6601ed56e6170b5ef780d7767a35edefda1dab0d Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 9 Sep 2010 17:01:32 +0400 Subject: [PATCH] cs gestures: leak fixed --- .../ChangeSignatureGestureDetector.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureGestureDetector.java b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureGestureDetector.java index f4c76779cf22..734095513fc2 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureGestureDetector.java +++ b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureGestureDetector.java @@ -87,6 +87,18 @@ public class ChangeSignatureGestureDetector extends PsiTreeChangeAdapter impleme @Override public void projectClosed() { + final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myProject); + for (PsiFile file : myListenerMap.keySet()) { + final MyDocumentChangeAdapter adapter = myListenerMap.get(file); + if (adapter != null) { + final Document document = documentManager.getDocument(file); + if (document != null) { + document.removeDocumentListener(adapter); + } + } + } + myListenerMap.clear(); + PsiManager.getInstance(myProject).removePsiTreeChangeListener(this); EditorFactory.getInstance().removeEditorFactoryListener(this); }