diff options
author | Anton Leherbauer | 2010-08-20 07:54:37 +0000 |
---|---|---|
committer | Anton Leherbauer | 2010-08-20 07:54:37 +0000 |
commit | 1af5387748251179941198beeeb5e2b28c4d4962 (patch) | |
tree | 08d29a86506dea4b5c77654c49fb6541c70ab086 | |
parent | e25ce91f19f3f4120b4644b79e79336c3edc0ca2 (diff) | |
download | org.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.java | 11 |
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; } |