mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-02 22:55:26 +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
|
@Override
|
||||||
public final void gotoAddress(IAddress address) {
|
public final void gotoAddress(IAddress address) {
|
||||||
|
assert isGuiThread();
|
||||||
if (address != null) {
|
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,10 +1942,8 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
|
||||||
final SafeRunnable safeUpdate = new SafeRunnable() {
|
final SafeRunnable safeUpdate = new SafeRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (updateCount == fUpdateCount && fViewer != null) {
|
|
||||||
update.run();
|
update.run();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
public void handleException(Throwable e) {
|
public void handleException(Throwable e) {
|
||||||
internalError(e);
|
internalError(e);
|
||||||
|
@ -1946,8 +1953,13 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
|
||||||
invokeLater(new Runnable() {
|
invokeLater(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
if (updateCount == fUpdateCount && fViewer != null) {
|
||||||
|
if (fUpdatePending)
|
||||||
|
invokeLater(this);
|
||||||
|
else
|
||||||
SafeRunner.run(safeUpdate);
|
SafeRunner.run(safeUpdate);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
SafeRunner.run(safeUpdate);
|
SafeRunner.run(safeUpdate);
|
||||||
|
|
Loading…
Add table
Reference in a new issue