Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Swanson2002-05-30 16:41:22 +0000
committerDarin Swanson2002-05-30 16:41:22 +0000
commitfe4e81982f84a24819e51c22a97b0aea3b439310 (patch)
tree2aa5df1b24c0c158bce8a04c7f7b3f3a6f4c905c /org.eclipse.debug.ui
parent7c854647e539da754a3d23dc350c500de408bb75 (diff)
downloadeclipse.platform.debug-fe4e81982f84a24819e51c22a97b0aea3b439310.tar.gz
eclipse.platform.debug-fe4e81982f84a24819e51c22a97b0aea3b439310.tar.xz
eclipse.platform.debug-fe4e81982f84a24819e51c22a97b0aea3b439310.zip
Bug 18334 - Launch view holding onto Objects longer than necessary
Bug 17017 - Not always prompted to find source location
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java30
1 files changed, 22 insertions, 8 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
index 13e97484c..397dd1f79 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/launch/LaunchView.java
@@ -284,18 +284,28 @@ public class LaunchView extends AbstractDebugEventHandlerView implements ISelect
if (getViewer() != null) {
getViewer().removeSelectionChangedListener(this);
}
+
getSite().getPage().removePartListener(this);
getSite().getWorkbenchWindow().removePerspectiveListener(this);
getSite().getWorkbenchWindow().removePageListener(this);
- setEditorId(null);
- setEditorInput(null);
- setStackFrame(null);
+
+ cleanup();
+
DebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(this);
ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
super.dispose();
}
/**
+ * Disposes of cached information
+ */
+ protected void cleanup() {
+ setEditorId(null);
+ setEditorInput(null);
+ setStackFrame(null);
+ }
+
+ /**
* Creates and returns the content provider to use for
* the viewer of this view.
*/
@@ -437,7 +447,6 @@ public class LaunchView extends AbstractDebugEventHandlerView implements ISelect
/**
* Opens a marker for the current selection if it is a stack frame.
- * If the current selection is a thread, deselection occurs.
* Otherwise, nothing will happen.
*/
protected void showMarkerForCurrentSelection() {
@@ -458,7 +467,11 @@ public class LaunchView extends AbstractDebugEventHandlerView implements ISelect
}
IStackFrame stackFrame= (IStackFrame) obj;
- if (!stackFrame.equals(getStackFrame())) {
+ if (stackFrame.equals(getStackFrame())) {
+ if (getEditorInput() == null || getEditorId() == null) {
+ lookupEditorInput();
+ }
+ } else {
setStackFrame(stackFrame);
lookupEditorInput();
}
@@ -622,6 +635,9 @@ public class LaunchView extends AbstractDebugEventHandlerView implements ISelect
* the debugger.
*/
public void clearSourceSelection() {
+
+ cleanup();
+
// Get the active editor
IEditorPart editor= getSite().getPage().getActiveEditor();
if (!(editor instanceof ITextEditor)) {
@@ -949,9 +965,7 @@ public class LaunchView extends AbstractDebugEventHandlerView implements ISelect
IProject project = (IProject)resource;
if (!project.isOpen()) {
// clear
- setStackFrame(null);
- setEditorId(null);
- setEditorInput(null);
+ cleanup();
}
}
return false;

Back to the top