From 15c37f6a0abd24b15bc605320333497b9ff5691c Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Thu, 2 Dec 2004 21:20:57 +0000 Subject: [PATCH] Fix for bug 80055: ArrayIndexOutOfBoundsException in DisassemblyView. --- debug/org.eclipse.cdt.debug.ui/ChangeLog | 4 ++++ .../ui/views/disassembly/DisassemblyEditorInput.java | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index fba63132346..cfe31a83650 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-12-02 Mikhail Khodjaiants + Fix for bug 80055: ArrayIndexOutOfBoundsException in DisassemblyView. + * DisassemblyEditorInput.java + 2004-11-26 Mikhail Khodjaiants Do not use "void" if parameter's list is empty when constructing a function or method name for function breakpoints. Name mapping should be done on the implementation level. diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java index 05b6c6134aa..85c70d0fcce 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/disassembly/DisassemblyEditorInput.java @@ -213,8 +213,9 @@ public class DisassemblyEditorInput implements IEditorInput { String opcode = instructions[i].getOpcode(); if ( opcode.length() > maxOpcodeLength ) maxOpcodeLength = opcode.length(); - if ( instructions[i].getOffset() > maxOffset ) { - maxOffset = instructions[i].getOffset(); + long offset = Math.abs( instructions[i].getOffset() ); + if ( offset > maxOffset ) { + maxOffset = offset; } } } @@ -249,8 +250,10 @@ public class DisassemblyEditorInput implements IEditorInput { if ( functionName != null && functionName.length() > 0 ) { sb.append( '<' ); sb.append( functionName ); - if ( instruction.getOffset() != 0 ) { - sb.append( '+' ); + long offset = instruction.getOffset(); + if ( offset != 0 ) { + if ( offset > 0 ) + sb.append( '+' ); sb.append( instruction.getOffset() ); } sb.append( ">:" ); //$NON-NLS-1$