From 2ec01d1901db46e5c3fa2d518f7220bf9e5a9154 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Sun, 15 Nov 2020 13:27:48 +0100 Subject: Fix memory leak on address_space_specific destruction and add a missing init [O. Galibert] --- src/devices/machine/k054321.cpp | 5 +++++ src/devices/machine/k054321.h | 1 + src/emu/emumem.cpp | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/devices/machine/k054321.cpp b/src/devices/machine/k054321.cpp index e5621f4f789..6a362f655b2 100644 --- a/src/devices/machine/k054321.cpp +++ b/src/devices/machine/k054321.cpp @@ -85,6 +85,11 @@ void k054321_device::device_start() save_item(NAME(m_active)); } +void k054321_device::device_reset() +{ + m_volume = 0; +} + void k054321_device::device_add_mconfig(machine_config &config) { for (int i = 0; i < 3; i++) diff --git a/src/devices/machine/k054321.h b/src/devices/machine/k054321.h index f5d9b65ea25..6c66659372d 100644 --- a/src/devices/machine/k054321.h +++ b/src/devices/machine/k054321.h @@ -26,6 +26,7 @@ public: protected: void device_start() override; + void device_reset() override; virtual void device_add_mconfig(machine_config &config) override; private: diff --git a/src/emu/emumem.cpp b/src/emu/emumem.cpp index 118b26d9342..62784459049 100644 --- a/src/emu/emumem.cpp +++ b/src/emu/emumem.cpp @@ -523,6 +523,11 @@ public: m_dispatch_write = m_root_write->get_dispatch(); } + ~address_space_specific() { + m_root_read->unref(); + m_root_write->unref(); + } + std::pair get_cache_info() override { std::pair rw; rw.first = m_root_read; -- cgit v1.2.3