Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2010-08-20 07:54:37 +0000
committerAnton Leherbauer2010-08-20 07:54:37 +0000
commit1af5387748251179941198beeeb5e2b28c4d4962 (patch)
tree08d29a86506dea4b5c77654c49fb6541c70ab086
parente25ce91f19f3f4120b4644b79e79336c3edc0ca2 (diff)
downloadorg.eclipse.cdt-1af5387748251179941198beeeb5e2b28c4d4962.tar.gz
org.eclipse.cdt-1af5387748251179941198beeeb5e2b28c4d4962.tar.xz
org.eclipse.cdt-1af5387748251179941198beeeb5e2b28c4d4962.zip
Bug 322628 - [disassembly] DisassemblyDocument#computeIndexInPositionListFirst() broken as called by addModelPositionFirst()
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
index f3af3f1b2c8..db40d874e36 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/model/DisassemblyDocument.java
@@ -216,9 +216,10 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
while (left <= right) {
mid = (left + right) / 2;
AddressRangePosition range = positions.get(mid);
- if (address.compareTo(range.fAddressOffset) < 0) {
+ int compareSign = address.compareTo(range.fAddressOffset);
+ if (compareSign < 0) {
right = mid - 1;
- } else if (address.compareTo(range.fAddressOffset) == 0) {
+ } else if (compareSign == 0) {
break;
} else if (address.compareTo(range.fAddressOffset.add(range.fAddressLength)) >= 0) {
left = mid + 1;
@@ -228,9 +229,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
}
int idx = mid;
AddressRangePosition p = positions.get(idx);
- if (address.compareTo(p.fAddressOffset.add(p.fAddressLength)) > 0) {
- ++idx;
- } else if (address.compareTo(p.fAddressOffset) == 0) {
+ if (address.compareTo(p.fAddressOffset) == 0) {
do {
--idx;
if (idx < 0) {
@@ -239,6 +238,8 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
p = positions.get(idx);
} while (address.compareTo(p.fAddressOffset) == 0);
++idx;
+ } else if (address.compareTo(p.fAddressOffset.add(p.fAddressLength)) >= 0) {
+ ++idx;
}
return idx;
}

Back to the top