diff options
Diffstat (limited to 'src/emu/emumem_mview.cpp')
-rw-r--r-- | src/emu/emumem_mview.cpp | 10 |
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); |