commit | f5649a39732b647cad70c58dc3e3b0d40e22f117 | [log] [tgz] |
---|---|---|
author | Paul Webster <pwebster@ca.ibm.com> | Wed Oct 17 09:49:09 2012 -0400 |
committer | Paul Webster <pwebster@ca.ibm.com> | Wed Oct 17 09:49:09 2012 -0400 |
tree | 5b6885b5c1942fac465e0ed35b155e0462cfc9c9 | |
parent | 37239038d643ff02e465fc88a0bcf66fc5d0f6dd [diff] |
Bug 390586 - [Performance] (sub-) action bars not disposed Closing the view should dispose its actionbars.
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorSite.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorSite.java index fb32ad8..9bf896c 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorSite.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorSite.java
@@ -129,6 +129,7 @@ if (ab != null) { ab.dispose(); + ab = null; } }
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewSite.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewSite.java index cb005c0..770719b 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewSite.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewSite.java
@@ -12,11 +12,11 @@ import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.e4.ui.model.application.ui.basic.MPart; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.ToolBarManager; +import org.eclipse.ui.IActionBars; import org.eclipse.ui.IViewSite; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.IWorkbenchPartReference; +import org.eclipse.ui.SubActionBars; import org.eclipse.ui.internal.e4.compatibility.ActionBars; /** @@ -48,10 +48,9 @@ @Override public void dispose() { - getActionBars().getMenuManager().dispose(); - IToolBarManager manager = getActionBars().getToolBarManager(); - if (manager instanceof ToolBarManager) { - ((ToolBarManager) manager).dispose(); + final IActionBars actionBars = getActionBars(); + if (actionBars instanceof SubActionBars) { + ((SubActionBars) actionBars).dispose(); } super.dispose(); }
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/ActionBars.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/ActionBars.java index 44810de..5c203f1 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/ActionBars.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/ActionBars.java
@@ -168,4 +168,18 @@ : parent != null; } + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.SubActionBars#dispose() + */ + @Override + public void dispose() { + menuManager.dispose(); + if (toolbarManager instanceof ToolBarManager) { + ((ToolBarManager) toolbarManager).dispose(); + } + super.dispose(); + } + }