mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 22:25:25 +02:00
Disassembly: Improve reliability of client-side address navigation
This commit is contained in:
parent
db2f21e5f2
commit
99f7cf5d40
1 changed files with 17 additions and 5 deletions
|
@ -1380,8 +1380,17 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
|
|||
*/
|
||||
@Override
|
||||
public final void gotoAddress(IAddress address) {
|
||||
assert isGuiThread();
|
||||
if (address != null) {
|
||||
gotoAddress(address.getValue());
|
||||
final BigInteger addr = address.getValue();
|
||||
startUpdate(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
fGotoFramePending = false;
|
||||
fGotoAddressPending = PC_UNKNOWN;
|
||||
gotoAddress(addr);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1933,9 +1942,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
|
|||
final SafeRunnable safeUpdate = new SafeRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (updateCount == fUpdateCount && fViewer != null) {
|
||||
update.run();
|
||||
}
|
||||
update.run();
|
||||
}
|
||||
@Override
|
||||
public void handleException(Throwable e) {
|
||||
|
@ -1946,7 +1953,12 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
|
|||
invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SafeRunner.run(safeUpdate);
|
||||
if (updateCount == fUpdateCount && fViewer != null) {
|
||||
if (fUpdatePending)
|
||||
invokeLater(this);
|
||||
else
|
||||
SafeRunner.run(safeUpdate);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue