mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 06:05:24 +02:00
Bug 322628 - [disassembly] DisassemblyDocument#computeIndexInPositionListFirst() broken as called by addModelPositionFirst()
This commit is contained in:
parent
7a22acef41
commit
1342519672
1 changed files with 6 additions and 5 deletions
|
@ -216,9 +216,10 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
|
||||||
while (left <= right) {
|
while (left <= right) {
|
||||||
mid = (left + right) / 2;
|
mid = (left + right) / 2;
|
||||||
AddressRangePosition range = positions.get(mid);
|
AddressRangePosition range = positions.get(mid);
|
||||||
if (address.compareTo(range.fAddressOffset) < 0) {
|
int compareSign = address.compareTo(range.fAddressOffset);
|
||||||
|
if (compareSign < 0) {
|
||||||
right = mid - 1;
|
right = mid - 1;
|
||||||
} else if (address.compareTo(range.fAddressOffset) == 0) {
|
} else if (compareSign == 0) {
|
||||||
break;
|
break;
|
||||||
} else if (address.compareTo(range.fAddressOffset.add(range.fAddressLength)) >= 0) {
|
} else if (address.compareTo(range.fAddressOffset.add(range.fAddressLength)) >= 0) {
|
||||||
left = mid + 1;
|
left = mid + 1;
|
||||||
|
@ -228,9 +229,7 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
|
||||||
}
|
}
|
||||||
int idx = mid;
|
int idx = mid;
|
||||||
AddressRangePosition p = positions.get(idx);
|
AddressRangePosition p = positions.get(idx);
|
||||||
if (address.compareTo(p.fAddressOffset.add(p.fAddressLength)) > 0) {
|
if (address.compareTo(p.fAddressOffset) == 0) {
|
||||||
++idx;
|
|
||||||
} else if (address.compareTo(p.fAddressOffset) == 0) {
|
|
||||||
do {
|
do {
|
||||||
--idx;
|
--idx;
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
|
@ -239,6 +238,8 @@ public class DisassemblyDocument extends REDDocument implements IDisassemblyDocu
|
||||||
p = positions.get(idx);
|
p = positions.get(idx);
|
||||||
} while (address.compareTo(p.fAddressOffset) == 0);
|
} while (address.compareTo(p.fAddressOffset) == 0);
|
||||||
++idx;
|
++idx;
|
||||||
|
} else if (address.compareTo(p.fAddressOffset.add(p.fAddressLength)) >= 0) {
|
||||||
|
++idx;
|
||||||
}
|
}
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue