From cda9077453e7cc7f5590565c2736e361ee2c9d68 Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Mon, 16 Jun 2008 20:20:24 +0000 Subject: [PATCH] [237325] - Additional fixes for CommandCache.isTargetAvailable() bug. --- .../eclipse/dd/dsf/debug/service/command/CommandCache.java | 4 ++-- .../src/org/eclipse/dd/mi/service/MIModules.java | 6 ++++-- .../src/org/eclipse/dd/mi/service/MIRegisters.java | 3 +-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java index 6c0cf3d1b44..b4119e875f3 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java @@ -449,7 +449,7 @@ public class CommandCache implements ICommandListener } else { fAvailableContexts.remove(context); for (Iterator itr = fAvailableContexts.iterator(); itr.hasNext();) { - if (DMContexts.isAncestorOf(itr.next(), context)) { + if (DMContexts.isAncestorOf(context, itr.next())) { itr.remove(); } } @@ -466,7 +466,7 @@ public class CommandCache implements ICommandListener return true; } } - return true; + return false; } diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java index f19ac762a5c..8ce190419a5 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java @@ -24,10 +24,10 @@ import org.eclipse.dd.dsf.datamodel.DMContexts; import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.service.IModules; import org.eclipse.dd.dsf.debug.service.command.CommandCache; -import org.eclipse.dd.dsf.debug.service.command.ICommandControl; import org.eclipse.dd.dsf.service.AbstractDsfService; import org.eclipse.dd.dsf.service.DsfSession; import org.eclipse.dd.mi.internal.MIPlugin; +import org.eclipse.dd.mi.service.command.AbstractMIControl; import org.eclipse.dd.mi.service.command.commands.CLIInfoSharedLibrary; import org.eclipse.dd.mi.service.command.output.CLIInfoSharedLibraryInfo; import org.eclipse.dd.mi.service.command.output.CLIInfoSharedLibraryInfo.DsfMISharedInfo; @@ -60,7 +60,9 @@ public class MIModules extends AbstractDsfService implements IModules { private void doInitialize(RequestMonitor requestMonitor) { // Cache for holding Modules data - fModulesCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); + AbstractMIControl miControl = getServicesTracker().getService(AbstractMIControl.class); + fModulesCache = new CommandCache(getSession(), miControl); + fModulesCache.setContextAvailable(miControl.getControlDMContext(), true); /* * Make ourselves known so clients can use us. */ diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java index 532229644a4..282885d82ab 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java @@ -27,7 +27,6 @@ import org.eclipse.dd.dsf.debug.service.IExpressions.IExpressionDMData; import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.StateChangeReason; import org.eclipse.dd.dsf.debug.service.command.CommandCache; -import org.eclipse.dd.dsf.debug.service.command.ICommandControl; import org.eclipse.dd.dsf.service.AbstractDsfService; import org.eclipse.dd.dsf.service.DsfServiceEventHandler; import org.eclipse.dd.dsf.service.DsfSession; @@ -174,7 +173,7 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { AbstractMIControl miControl = getServicesTracker().getService(AbstractMIControl.class); fRegisterValueCache = new CommandCache(getSession(), miControl); fRegisterValueCache.setContextAvailable(miControl.getControlDMContext(), true); - fRegisterNameCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); + fRegisterNameCache = new CommandCache(getSession(), miControl); fRegisterNameCache.setContextAvailable(miControl.getControlDMContext(), true); /*