Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2011-04-20 19:57:49 +0000
committereutarass2011-04-20 19:57:49 +0000
commitd09fe6f7fff9e91141d78878337c9999e0e6cf73 (patch)
tree1e86d7324c277b146aaadf8498d9f5dfc9112989
parent1374bf239990a32a3e346c2b6ef1228fc8aadbb3 (diff)
downloadorg.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.java29
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;

Back to the top