diff options
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.java | 10 |
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]; } /** |