diff options
author | eutarass | 2011-04-20 19:57:49 +0000 |
---|---|---|
committer | eutarass | 2011-04-20 19:57:49 +0000 |
commit | d09fe6f7fff9e91141d78878337c9999e0e6cf73 (patch) | |
tree | 1e86d7324c277b146aaadf8498d9f5dfc9112989 | |
parent | 1374bf239990a32a3e346c2b6ef1228fc8aadbb3 (diff) | |
download | org.eclipse.tcf-d09fe6f7fff9e91141d78878337c9999e0e6cf73.tar.gz org.eclipse.tcf-d09fe6f7fff9e91141d78878337c9999e0e6cf73.tar.xz org.eclipse.tcf-d09fe6f7fff9e91141d78878337c9999e0e6cf73.zip |
TCF Debugger: register node code changed to not allow register value editing if the register is readable, but reading the register returns an error
-rw-r--r-- | plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFNodeRegister.java | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFNodeRegister.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFNodeRegister.java index a3e42bce9..49f94a1bd 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFNodeRegister.java +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFNodeRegister.java @@ -458,15 +458,22 @@ public class TCFNodeRegister extends TCFNode implements IElementEditor { return new TCFTask<Boolean>() { public void run() { if (!node.context.validate(this)) return; - if (node.context.getData() != null && node.context.getData().isWriteable()) { - if (!node.value.validate(this)) return; - if (TCFColumnPresentationRegister.COL_HEX_VALUE.equals(property)) { - done(TCFNumberFormat.isValidHexNumber(node.toNumberString(16)) == null); + IRegisters.RegistersContext ctx = node.context.getData(); + if (ctx != null && ctx.isWriteable()) { + if (!ctx.isReadable()) { + done(Boolean.TRUE); return; } - if (TCFColumnPresentationRegister.COL_DEC_VALUE.equals(property)) { - done(TCFNumberFormat.isValidDecNumber(true, node.toNumberString(10)) == null); - return; + if (!node.value.validate(this)) return; + if (node.value.getError() == null) { + if (TCFColumnPresentationRegister.COL_HEX_VALUE.equals(property)) { + done(TCFNumberFormat.isValidHexNumber(node.toNumberString(16)) == null); + return; + } + if (TCFColumnPresentationRegister.COL_DEC_VALUE.equals(property)) { + done(TCFNumberFormat.isValidDecNumber(true, node.toNumberString(10)) == null); + return; + } } } done(Boolean.FALSE); @@ -478,8 +485,14 @@ public class TCFNodeRegister extends TCFNode implements IElementEditor { final TCFNodeRegister node = (TCFNodeRegister)element; return new TCFTask<String>() { public void run() { + if (!node.context.validate(this)) return; + IRegisters.RegistersContext ctx = node.context.getData(); + if (!ctx.isReadable()) { + done("0"); + return; + } if (!node.value.validate(this)) return; - if (node.value.getData() != null) { + if (node.value.getError() == null) { if (TCFColumnPresentationRegister.COL_HEX_VALUE.equals(property)) { done(node.toNumberString(16)); return; |