From 93595b208c28df4ad6270ef89b86b980fb6f6547 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Mon, 10 Nov 2008 14:49:00 +0000 Subject: [PATCH] [254665] [disassembly] Invalid thread access SWT exception seen in log. --- .../ui/disassembly/DisassemblyPart.java | 4 ++-- .../FunctionOffsetRulerColumn.java | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/DisassemblyPart.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/DisassemblyPart.java index 9b31272e6fe..e75681ffba8 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/DisassemblyPart.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/DisassemblyPart.java @@ -2428,9 +2428,9 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem asyncExec(new Runnable() { public void run() { updatePC(PC_UNKNOWN); + firePropertyChange(PROP_SUSPENDED); } }); - firePropertyChange(PROP_SUSPENDED); } } @@ -2442,9 +2442,9 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem asyncExec(new Runnable() { public void run() { updatePC(PC_RUNNING); + firePropertyChange(PROP_SUSPENDED); } }); - firePropertyChange(PROP_SUSPENDED); } } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java index 594147eabf3..946665293f0 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/ui/disassembly/FunctionOffsetRulerColumn.java @@ -20,6 +20,9 @@ import org.eclipse.jface.text.BadLocationException; */ public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn { + /** Maximum width of column (in characters) */ + private static final int MAXWIDTH= 40; + /** * Default constructor. */ @@ -39,9 +42,13 @@ public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn { AddressRangePosition pos = doc.getDisassemblyPosition(offset); if (pos instanceof DisassemblyPosition && pos.length > 0 && pos.offset == offset && pos.fValid) { DisassemblyPosition disassPos = (DisassemblyPosition)pos; + int length = disassPos.fFunction.length; + if (length > MAXWIDTH) { + return "..." + new String(disassPos.fFunction, length - MAXWIDTH + 3, MAXWIDTH - 3); //$NON-NLS-1$ + } return new String(disassPos.fFunction); } else if (pos != null && !pos.fValid) { - return DOTS.substring(0, doc.getMaxFunctionLength()); + return DOTS.substring(0, Math.min(MAXWIDTH, doc.getMaxFunctionLength())); } } catch (BadLocationException e) { // silently ignored @@ -52,15 +59,7 @@ public class FunctionOffsetRulerColumn extends DisassemblyRulerColumn { @Override protected int computeNumberOfCharacters() { DisassemblyDocument doc = (DisassemblyDocument)getParentRuler().getTextViewer().getDocument(); - return doc.getMaxFunctionLength(); - } - - /* - * @see org.eclipse.jface.text.source.IVerticalRulerColumn#getWidth() - */ - @Override - public int getWidth() { - return super.getWidth(); + return Math.min(MAXWIDTH, doc.getMaxFunctionLength()); } }