From 7198b1ea8b754e99b5dd53fee6505039510f5e7c Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 18 Mar 2011 18:33:20 +0100 Subject: [PATCH] debugger: fix vanishing location mark in disassembler mode Task-number: QTCREATORBUG-4157 --- src/plugins/debugger/debuggerengine.cpp | 1 + src/plugins/debugger/disassembleragent.cpp | 14 ++++++++++++-- src/plugins/debugger/disassembleragent.h | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 3c6e210ce1..e355de2de0 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -246,6 +246,7 @@ public slots: void scheduleResetLocation() { m_stackHandler.scheduleResetLocation(); + m_disassemblerAgent.scheduleResetLocation(); m_locationTimer.setSingleShot(true); m_locationTimer.start(80); } diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp index fa8f91d2e0..5b354aa1ea 100644 --- a/src/plugins/debugger/disassembleragent.cpp +++ b/src/plugins/debugger/disassembleragent.cpp @@ -117,13 +117,15 @@ public: QHash cache; QString mimeType; + bool m_resetLocationScheduled; }; DisassemblerAgentPrivate::DisassemblerAgentPrivate() : editor(0), tryMixed(true), locationMark(new LocationMark2), - mimeType(_("text/x-qtcreator-generic-asm")) + mimeType(_("text/x-qtcreator-generic-asm")), + m_resetLocationScheduled(false) { } @@ -162,11 +164,19 @@ void DisassemblerAgent::cleanup() d->cache.clear(); } +void DisassemblerAgent::scheduleResetLocation() +{ + d->m_resetLocationScheduled = true; +} + void DisassemblerAgent::resetLocation() { if (!d->editor) return; - d->editor->markableInterface()->removeMark(d->locationMark); + if (d->m_resetLocationScheduled) { + d->m_resetLocationScheduled = false; + d->editor->markableInterface()->removeMark(d->locationMark); + } } static QString frameKey(const Location &loc) diff --git a/src/plugins/debugger/disassembleragent.h b/src/plugins/debugger/disassembleragent.h index f2b69f8b05..7c779315b3 100644 --- a/src/plugins/debugger/disassembleragent.h +++ b/src/plugins/debugger/disassembleragent.h @@ -57,6 +57,7 @@ public: void setTryMixed(bool on); void setLocation(const Location &location); const Location &location() const; + void scheduleResetLocation(); void resetLocation(); void setContents(const DisassemblerLines &contents); void updateLocationMarker(); -- 2.11.0