summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_mview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_mview.cpp')
-rw-r--r--src/emu/emumem_mview.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/emu/emumem_mview.cpp b/src/emu/emumem_mview.cpp
index 34e6883b3c0..d8a442e8ff2 100644
--- a/src/emu/emumem_mview.cpp
+++ b/src/emu/emumem_mview.cpp
@@ -637,6 +637,14 @@ memory_view::memory_view(device_t &device, std::string name) : m_device(device),
device.view_register(this);
}
+memory_view::~memory_view()
+{
+ if (m_handler_read) {
+ m_handler_read->unref();
+ m_handler_write->unref();
+ }
+}
+
void memory_view::register_state()
{
m_device.machine().save().save_item(&m_device, "view", m_name.c_str(), 0, NAME(m_cur_slot));
@@ -776,6 +784,8 @@ std::pair<handler_entry *, handler_entry *> memory_view::make_handlers(address_s
}
h_make(awidth, m_config->data_width(), m_config->addr_shift(), m_config->endianness(), space, *this, m_handler_read, m_handler_write);
+ m_handler_read->ref();
+ m_handler_write->ref();
}
return std::make_pair(m_handler_read, m_handler_write);