From 334882d25832a62ba2084bcc0f57dd1dfde137e4 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Wed, 17 Nov 2004 03:52:49 +0000 Subject: [PATCH] 2004-11-16 Alain Magloire Optimize things by providing a new method ICDIRegisterGroup.hasRegisters(); * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java * src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java --- debug/org.eclipse.cdt.debug.core/ChangeLog | 6 ++++++ .../cdt/debug/core/cdi/model/ICDIRegisterGroup.java | 9 +++++++++ .../cdt/debug/internal/core/model/CRegisterGroup.java | 7 ++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 89ad186dbf2..d227e81c6a3 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,9 @@ +2004-11-16 Alain Magloire + Optimize things by providing a new method + ICDIRegisterGroup.hasRegisters(); + * cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java + * src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java + 2004-11-15 Mikhail Khodjaiants Fix for bug 78604: Disassembly causes Java exception when disassembling beyond fn(?). Added the "getAddressFactory" method to the "IDisassembly" interface. diff --git a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java index 208ddc117e7..a5667fbc306 100644 --- a/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/cdi/org/eclipse/cdt/debug/core/cdi/model/ICDIRegisterGroup.java @@ -35,4 +35,13 @@ public interface ICDIRegisterGroup extends ICDIObject { * @throws CDIException if this method fails. Reasons include: */ ICDIRegisterDescriptor[] getRegisterDescriptors() throws CDIException; + + /** + * Returns whether this register group currently contains any registers. + * + * @return whether this register group currently contains any registers + * @exception CDIException if this method fails. Reasons include: + */ + public boolean hasRegisters() throws CDIException; + } diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java index a07747a40ad..2846297d777 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CRegisterGroup.java @@ -71,7 +71,12 @@ public class CRegisterGroup extends CDebugElement implements IRegisterGroup, IEn * @see org.eclipse.debug.core.model.IRegisterGroup#hasRegisters() */ public boolean hasRegisters() throws DebugException { - return getRegisters().length > 0; + try { + return fCDIRegisterGroup.hasRegisters(); + } catch( CDIException e ) { + requestFailed( e.getMessage(), null ); + } + return false; } public void dispose() {