From c9a4d6b0a81b38c3cbe0d9121aa2024dfdf99d00 Mon Sep 17 00:00:00 2001 From: Couriersud Date: Tue, 3 Dec 2013 19:19:00 +0000 Subject: [PATCH] Netlist: Fix a memory leak --- src/emu/netlist/devices/net_lib.c | 15 +++++++++++++++ src/emu/netlist/nl_base.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/src/emu/netlist/devices/net_lib.c b/src/emu/netlist/devices/net_lib.c index c2dec23e937..e2af4ce8666 100644 --- a/src/emu/netlist/devices/net_lib.c +++ b/src/emu/netlist/devices/net_lib.c @@ -904,6 +904,21 @@ NETLIB_FUNC_VOID(nic9316_sub, update_outputs, (void)) #define ENTRY1(_nic, _name) m_list.add(new net_device_t_factory< _nic >( # _name, xstr(_nic) )); #define ENTRY(_nic, _name) ENTRY1(NETLIB_NAME(_nic), _name) +netlist_factory::netlist_factory() +{ + +} + +netlist_factory::~netlist_factory() +{ + for (list_t::entry_t *e = m_list.first(); e != NULL; e = m_list.next(e)) + { + net_device_t_base_factory *p = e->object(); + delete p; + } + m_list.reset(); +} + void netlist_factory::initialize() { ENTRY(R, NETDEV_R) diff --git a/src/emu/netlist/nl_base.h b/src/emu/netlist/nl_base.h index 9c5b1399a79..d63fdea0f42 100644 --- a/src/emu/netlist/nl_base.h +++ b/src/emu/netlist/nl_base.h @@ -1143,6 +1143,9 @@ class netlist_factory { public: + netlist_factory(); + ~netlist_factory(); + void initialize(); netlist_device_t *new_device_by_classname(const pstring &classname, netlist_setup_t &setup) const;