Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2018-07-05 16:16:57 +0000
committerAndrey Loskutov2018-07-05 19:06:39 +0000
commit2cd04afc746dbcc8ed4e9fef4417ed63acacd298 (patch)
tree9ae79755d1629ea14589293f7d62c55cbee59f4a /bundles/org.eclipse.ui.workbench
parent26c320efc6aa6ae1f9926f9b687f504660d464a2 (diff)
downloadeclipse.platform.ui-2cd04afc746dbcc8ed4e9fef4417ed63acacd298.tar.gz
eclipse.platform.ui-2cd04afc746dbcc8ed4e9fef4417ed63acacd298.tar.xz
eclipse.platform.ui-2cd04afc746dbcc8ed4e9fef4417ed63acacd298.zip
Bug 536677 - fix simple memory leaks to WorkbenchWindowI20180705-2000
Change-Id: I10cdda52fe2faa989bf7ea03198336a6394700e5 Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Diffstat (limited to 'bundles/org.eclipse.ui.workbench')
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/actions/PerspectiveMenu.java6
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageEventAction.java3
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveTracker.java1
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java6
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java11
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/SwitchToWindowMenu.java6
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/commands/SlaveCommandService.java3
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java1
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java5
9 files changed, 41 insertions, 1 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/actions/PerspectiveMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/actions/PerspectiveMenu.java
index 5a9b27bd7b5..0b494254e00 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/actions/PerspectiveMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/actions/PerspectiveMenu.java
@@ -377,4 +377,10 @@ public abstract class PerspectiveMenu extends ContributionItem {
protected void showActive(boolean b) {
showActive = b;
}
+
+ @Override
+ public void dispose() {
+ window = null;
+ super.dispose();
+ }
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageEventAction.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageEventAction.java
index 95f9f764a91..783b87e38ea 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageEventAction.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PageEventAction.java
@@ -14,8 +14,8 @@ import org.eclipse.ui.IPageListener;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.PartEventAction;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.actions.PartEventAction;
/**
* The abstract superclass for actions that listen to page activation and
@@ -161,6 +161,7 @@ public abstract class PageEventAction extends PartEventAction implements
// action has already been disposed
return;
}
+ super.partDeactivated(null);
workbenchWindow.removePageListener(this);
workbenchWindow.getPartService().removePartListener(this);
workbenchWindow = null;
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveTracker.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveTracker.java
index ae35acb17f8..c154a07ea87 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveTracker.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PerspectiveTracker.java
@@ -65,6 +65,7 @@ public class PerspectiveTracker extends PerspectiveAdapter implements
if (window != null) {
window.removePageListener(this);
window.removePerspectiveListener(this);
+ window = null;
}
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
index 7cf97348f58..6ae53a2aefc 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ReopenEditorMenu.java
@@ -294,4 +294,10 @@ public class ReopenEditorMenu extends ContributionItem {
}
}
+ @Override
+ public void dispose() {
+ window = null;
+ super.dispose();
+ }
+
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
index 62bea4eab0a..dd0eed6a688 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ShowViewMenu.java
@@ -353,4 +353,15 @@ public class ShowViewMenu extends ContributionItem {
}
return new ParameterizedCommand(c, parms);
}
+
+ @Override
+ public void dispose() {
+ if (menuManager != null) {
+ menuManager.dispose();
+ menuManager = null;
+ }
+ openedViews.clear();
+ window = null;
+ super.dispose();
+ }
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/SwitchToWindowMenu.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/SwitchToWindowMenu.java
index 638ece9daf2..e128744751e 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/SwitchToWindowMenu.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/SwitchToWindowMenu.java
@@ -129,4 +129,10 @@ public class SwitchToWindowMenu extends ContributionItem {
public boolean isDynamic() {
return true;
}
+
+ @Override
+ public void dispose() {
+ workbenchWindow = null;
+ super.dispose();
+ }
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/commands/SlaveCommandService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/commands/SlaveCommandService.java
index 0ffbe0748f0..0e6ee62ae26 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/commands/SlaveCommandService.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/commands/SlaveCommandService.java
@@ -135,6 +135,9 @@ public class SlaveCommandService implements ICommandService, IUpdateService {
unregisterElement((IElementReference) element);
}
}
+ fScopingValue = null;
+ fContext = null;
+ fParentService = null;
}
@Override
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
index 6912b7cfb06..488a90f122e 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
@@ -444,6 +444,7 @@ public abstract class CompatibilityPart implements ISelectionChangedListener {
if (part.getTags().contains(IWorkbenchConstants.TAG_USE_DEPENDENCY_INJECTION)) {
ContextInjectionFactory.uninject(legacyPart, part.getContext());
}
+ legacyPart = null;
}
@Persist
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
index 00b92a60852..5d6990b3dd4 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/quickaccess/SearchField.java
@@ -717,6 +717,11 @@ public class SearchField {
refreshQuickAccessContents.cancel();
}
storeDialog();
+ elementMap.clear();
+ previousPicksList.clear();
+ providerMap.clear();
+ textMap.clear();
+ partService = null;
}
private void storeDialog() {

Back to the top