From e775c4839abe8adcea7cfbec2e044c8a9b781cb4 Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Fri, 13 Jun 2008 15:31:30 +0000 Subject: [PATCH] [236843] - [variables] Hanging variables view (2) --- .../eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java | 3 ++- .../dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java | 2 +- .../src/org/eclipse/dd/mi/service/MIStack.java | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java index 06f279057dc..add99553c9c 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java @@ -491,7 +491,8 @@ abstract public class AbstractVMProvider implements IVMProvider } }) ); - + } else { + super.handleErrorOrWarning(); } } diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java index bab8b3af62c..9dc5d52cb25 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java @@ -194,7 +194,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider } }); } - } else if (update.isCanceled()) { + } else { update.done(); } diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIStack.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIStack.java index 2a0617ed670..b8bde9f7bd5 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIStack.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIStack.java @@ -481,7 +481,12 @@ public class MIStack extends AbstractDsfService protected void handleSuccess() { // Create the data object. - rm.setData(new VariableData(getData().getLocals()[miVariableDmc.fIndex])); + MIArg[] locals = getData().getLocals(); + if (locals.length > miVariableDmc.fIndex) { + rm.setData(new VariableData(locals[miVariableDmc.fIndex])); + } else { + rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, INVALID_HANDLE, "Invalid variable " + miVariableDmc, null)); //$NON-NLS-1$ + } rm.done(); } });