diff options
Diffstat (limited to 'src/emu/debug/dvdisasm.cpp')
-rw-r--r-- | src/emu/debug/dvdisasm.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/emu/debug/dvdisasm.cpp b/src/emu/debug/dvdisasm.cpp index a08d500e92f..ab24206ff90 100644 --- a/src/emu/debug/dvdisasm.cpp +++ b/src/emu/debug/dvdisasm.cpp @@ -230,6 +230,7 @@ void debug_view_disasm::generate_from_address(debug_disasm_buffer &buffer, offs_ m_dasm.emplace_back(address, size, dasm); address = next_address; } + m_recompute = false; } bool debug_view_disasm::generate_with_pc(debug_disasm_buffer &buffer, offs_t pc) @@ -247,6 +248,7 @@ bool debug_view_disasm::generate_with_pc(debug_disasm_buffer &buffer, offs_t pc) backwards_offset = 64 << shift; m_dasm.clear(); + m_recompute = false; offs_t address = (pc - m_backwards_steps*backwards_offset) & source.m_space.logaddrmask(); // Handle wrap at 0 if(address > pc) @@ -321,7 +323,7 @@ void debug_view_disasm::generate_dasm(debug_disasm_buffer &buffer, offs_t pc) return; } - if(address_position(pc) != -1) { + if(!m_recompute && address_position(pc) != -1) { generate_from_address(buffer, m_dasm[0].m_address); int pos = address_position(pc); if(pos != -1) { @@ -510,7 +512,7 @@ void debug_view_disasm::set_right_column(disasm_right_column contents) { begin_update(); m_right_column = contents; - m_recompute = m_update_pending = true; + m_update_pending = true; end_update(); } @@ -567,7 +569,7 @@ void debug_view_disasm::set_selected_address(offs_t address) void debug_view_disasm::set_source(const debug_view_source &source) { if(&source != m_source) { + m_recompute = true; debug_view::set_source(source); - m_dasm.clear(); } } |