From f02257b4dce2d4790855580948af7a35375711dc Mon Sep 17 00:00:00 2001 From: John Cortell Date: Thu, 18 Jan 2007 13:45:30 +0000 Subject: [PATCH] Tweak to last change based on Mikhail's review. --- .../internal/core/CMemoryBlockRetrievalExtension.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java index e4b442dcc96..43a2a8db38b 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CMemoryBlockRetrievalExtension.java @@ -15,6 +15,7 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import org.eclipse.cdt.core.IAddress; +import org.eclipse.cdt.core.IAddressFactory; import org.eclipse.cdt.debug.core.CDebugCorePlugin; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.debug.core.cdi.CDIException; @@ -152,13 +153,11 @@ public class CMemoryBlockRetrievalExtension extends PlatformObject implements IM } // See if the expression is a simple numeric value; if it is, we can avoid some costly - // processing (calling the backend to resolve the expression) + // processing (avoid calling the backend to resolve the expression) try { - if (expression.startsWith("0x") && expression.length() > 2) { - return new CMemoryBlockExtension((CDebugTarget)target, expression, new BigInteger(expression.substring(2), 16)); - } else if (Character.isDigit(expression.charAt(0))) { - return new CMemoryBlockExtension((CDebugTarget)target, expression, new BigInteger(expression)); - } + IAddressFactory addrFactory = ((CDebugTarget)target).getAddressFactory(); + String hexstr = addrFactory.createAddress(expression).toString(16); + return new CMemoryBlockExtension((CDebugTarget)target, expression, new BigInteger(hexstr, 16)); } catch (NumberFormatException nfexc) { // OK, expression is not a simple, absolute numeric value; keep trucking and try to resolve as expression }