Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java')
-rw-r--r--core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java
index 771b14acc31..9c9a71df6c3 100644
--- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java
+++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java
@@ -58,11 +58,15 @@ public class BinaryObject extends BinaryFile implements IBinaryObject {
*/
public ISymbol getSymbol(long addr) {
ISymbol[] syms = getSymbols();
- int i = Arrays.binarySearch(syms, new Long(addr));
- if (i < 0 || i >= syms.length) {
+ int insertion = Arrays.binarySearch(syms, new Long(addr));
+ if (insertion > 0) {
+ return syms[insertion];
+ }
+ if (insertion == -1) {
return null;
}
- return syms[i];
+ insertion = -insertion - 1;
+ return syms[insertion - 1];
}
/**

Back to the top