summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/machine/netlist.c7
-rw-r--r--src/emu/machine/netlist.h4
2 files changed, 11 insertions, 0 deletions
diff --git a/src/emu/machine/netlist.c b/src/emu/machine/netlist.c
index 89efcbc72b4..a0bd2065fb0 100644
--- a/src/emu/machine/netlist.c
+++ b/src/emu/machine/netlist.c
@@ -430,6 +430,10 @@ netlist_setup_t::netlist_setup_t(netlist_base_t &netlist)
netlist_setup_t::~netlist_setup_t()
{
+ for (tagmap_devices_t::entry_t *entry = m_devices.first(); entry != NULL; entry = m_devices.next(entry))
+ {
+ remove_dev(entry->object()->name());
+ }
}
@@ -929,6 +933,9 @@ void netlist_mame_device::device_reset()
void netlist_mame_device::device_stop()
{
m_setup->print_stats();
+
+ global_free(m_setup);
+ global_free(m_netlist);
}
void netlist_mame_device::device_post_load()
diff --git a/src/emu/machine/netlist.h b/src/emu/machine/netlist.h
index 66533f6612c..ae50b59c058 100644
--- a/src/emu/machine/netlist.h
+++ b/src/emu/machine/netlist.h
@@ -280,6 +280,10 @@ public:
m_ptr = m_list;
m_ptr--;
}
+ ~net_list_t()
+ {
+ global_free(m_list);
+ }
ATTR_HOT inline void add(const _ListClass elem)
{
assert(m_ptr-m_list <= _NumElements - 1);