From 195e3de0f2722db4e547ce7ad9c4c2eeaeae0b78 Mon Sep 17 00:00:00 2001 From: Fabrice Bellet Date: Wed, 3 Dec 2014 17:29:13 +0100 Subject: [PATCH] debug: dont update asm view in the start_hook() The curpc can be in the middle of an instruction being decoded, so it is not pertinent to recompute the disassembly starting from this address. --- src/emu/debug/debugcpu.c | 2 +- src/emu/debug/debugvw.c | 14 ++++++++++++++ src/emu/debug/debugvw.h | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c index 83569bf9856..da35ad32ab3 100644 --- a/src/emu/debug/debugcpu.c +++ b/src/emu/debug/debugcpu.c @@ -1731,7 +1731,7 @@ void device_debug::start_hook(const attotime &endtime) // check for periodic updates if (&m_device == global->visiblecpu && osd_ticks() > global->last_periodic_update_time + osd_ticks_per_second()/4) { - m_device.machine().debug_view().update_all(); + m_device.machine().debug_view().update_all_except(DVT_DISASSEMBLY); m_device.machine().debug_view().flush_osd_updates(); global->last_periodic_update_time = osd_ticks(); } diff --git a/src/emu/debug/debugvw.c b/src/emu/debug/debugvw.c index d00240cc923..3a76a07b549 100644 --- a/src/emu/debug/debugvw.c +++ b/src/emu/debug/debugvw.c @@ -397,6 +397,20 @@ void debug_view_manager::free_view(debug_view &view) } +//------------------------------------------------- +// update_all_except - force all views to refresh +// except one +//------------------------------------------------- + +void debug_view_manager::update_all_except(debug_view_type type) +{ + // loop over each view and force an update + for (debug_view *view = m_viewlist; view != NULL; view = view->next()) + if (type == DVT_NONE || type != view->type()) + view->force_update(); +} + + //------------------------------------------------- // update_all - force all views to refresh //------------------------------------------------- diff --git a/src/emu/debug/debugvw.h b/src/emu/debug/debugvw.h index 70db5910448..2b7148cf813 100644 --- a/src/emu/debug/debugvw.h +++ b/src/emu/debug/debugvw.h @@ -240,6 +240,7 @@ public: // update helpers void update_all(debug_view_type type = DVT_NONE); + void update_all_except(debug_view_type type = DVT_NONE); void flush_osd_updates(); private: