diff options
author | Laurent Redor | 2014-12-11 13:57:34 +0000 |
---|---|---|
committer | Laurent Redor | 2014-12-11 13:58:51 +0000 |
commit | c6157c8a0958fc90cfdef8c56ee386ebfc30bf6e (patch) | |
tree | 9f7df245ed0806a2e56965211de7e52507075f76 | |
parent | 888a5d559c7cff7615ed37295ed4dca709a48ed6 (diff) | |
download | org.eclipse.sirius-c6157c8a0958fc90cfdef8c56ee386ebfc30bf6e.tar.gz org.eclipse.sirius-c6157c8a0958fc90cfdef8c56ee386ebfc30bf6e.tar.xz org.eclipse.sirius-c6157c8a0958fc90cfdef8c56ee386ebfc30bf6e.zip |
[454887] Dispose SessionEditorInput on tabel and tree closing
This avoid a memory leak caused by the INavigationHistory and
EditorHistory that retain the IEditorInput.
Bug: 454887
Change-Id: I040c8244a6356032aef9eea931c9e9d33a59c7ea
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
-rw-r--r-- | plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java index d92df6a8c5..4106c171ad 100644 --- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java +++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/editor/AbstractDTreeEditor.java @@ -49,6 +49,7 @@ import org.eclipse.sirius.tools.api.permission.DRepresentationPermissionStatusQu import org.eclipse.sirius.ui.business.api.dialect.DialectEditor; import org.eclipse.sirius.ui.business.api.dialect.DialectEditorDialogFactory; import org.eclipse.sirius.ui.business.api.session.IEditingSession; +import org.eclipse.sirius.ui.business.api.session.SessionEditorInput; import org.eclipse.sirius.ui.business.api.session.SessionUIManager; import org.eclipse.sirius.ui.business.internal.dialect.TreeEditorDialogFactory; import org.eclipse.sirius.ui.tools.api.properties.DTablePropertySheetpage; @@ -526,6 +527,11 @@ public abstract class AbstractDTreeEditor extends EditorPart implements DialectE if (getTableViewer() != null) { getTableViewer().dispose(); } + // Dispose the session editor input to keep the minimum information to + // be restore from the INavigationHistory and EditorHistory. + if (getEditorInput() instanceof SessionEditorInput) { + ((SessionEditorInput) getEditorInput()).dispose(); + } } /** |