diff options
| author | 2026-02-16 01:00:49 +0100 | |
|---|---|---|
| committer | 2026-02-16 01:00:58 +0100 | |
| commit | a00dffbfee978c9a3b88e9bd623973185285895e (patch) | |
| tree | 35b34c0bbc9741cf3cf68b2753b2a8c5ff52bcb2 /src/emu | |
| parent | d965942b6e6100a6c29e32442555955e59f449b1 (diff) | |
emumem_mview: on switch, do nothing if selected slot is same as before
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/emumem_mview.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/emu/emumem_mview.cpp b/src/emu/emumem_mview.cpp index 3da4a90ac7d..80226759c4b 100644 --- a/src/emu/emumem_mview.cpp +++ b/src/emu/emumem_mview.cpp @@ -444,7 +444,7 @@ void memory_view::memory_view_entry::prepare_map_generic(address_map &map, bool void memory_view::memory_view_entry::prepare_device_map(address_map &map) { // Disable the test for now, some cleanup needed before - if(0) { + if (0) { // device maps are not supposed to set global parameters if (map.m_unmapval) fatalerror("Device maps should not set the unmap value\n"); @@ -521,20 +521,27 @@ void memory_view::refresh_id() void memory_view::disable() { - m_cur_slot = -1; - m_cur_id = -1; - refresh_id(); + if (m_cur_id != -1) { + m_cur_slot = -1; + m_cur_id = -1; + refresh_id(); + } } void memory_view::select(int slot) { - auto i = m_entry_mapping.find(slot); - if (i == m_entry_mapping.end()) - fatalerror("memory_view %s: select of unknown slot %d", m_name, slot); + if (slot < 0) + fatalerror("memory_view %s: select of unknown slot %d\n", m_name, slot); - m_cur_slot = slot; - m_cur_id = i->second; - refresh_id(); + if (slot != m_cur_slot) { + auto i = m_entry_mapping.find(slot); + if (i == m_entry_mapping.end()) + fatalerror("memory_view %s: select of unknown slot %d\n", m_name, slot); + + m_cur_slot = slot; + m_cur_id = i->second; + refresh_id(); + } } int memory_view::id_to_slot(int id) const @@ -548,7 +555,7 @@ int memory_view::id_to_slot(int id) const void memory_view::initialize_from_address_map(offs_t addrstart, offs_t addrend, const address_space_config &config) { if (m_config) - fatalerror("A memory_view can be present in only one address map."); + fatalerror("A memory_view can be present in only one address map.\n"); m_config = &config; m_addrstart = addrstart; |
