diff options
Diffstat (limited to 'src/lib/netlist/nl_base.cpp')
-rw-r--r-- | src/lib/netlist/nl_base.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index 3026a35cc34..2ab1799fdea 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -687,7 +687,8 @@ core_device_t::~core_device_t() void core_device_t::set_default_delegate(detail::core_terminal_t &term) { - term.m_delegate.set(&core_device_t::update, this); + if (!term.m_delegate.is_set()) + term.m_delegate.set(&core_device_t::update, this); } plib::plog_base<NL_DEBUG> &core_device_t::log() @@ -957,14 +958,14 @@ analog_net_t::~analog_net_t() // core_terminal_t // ---------------------------------------------------------------------------------------- -detail::core_terminal_t::core_terminal_t(core_device_t &dev, const pstring &aname, const state_e state) +detail::core_terminal_t::core_terminal_t(core_device_t &dev, const pstring &aname, + const state_e state, nldelegate delegate) : device_object_t(dev, dev.name() + "." + aname) , plib::linkedlist_t<core_terminal_t>::element_t() +, m_delegate(delegate) , m_net(nullptr) , m_state(*this, "m_state", state) { - //m_delegate.set(&core_device_t::update, &dev); - //m_delegate.set(&core_device_t::update_dev, &dev); } detail::core_terminal_t::~core_terminal_t() @@ -998,8 +999,9 @@ analog_t::~analog_t() { } -logic_t::logic_t(core_device_t &dev, const pstring &aname, const state_e state) - : core_terminal_t(dev, aname, state) +logic_t::logic_t(core_device_t &dev, const pstring &aname, const state_e state, + nldelegate delegate) + : core_terminal_t(dev, aname, state, delegate) , logic_family_t() , m_proxy(nullptr) { @@ -1119,8 +1121,9 @@ void analog_output_t::initial(const nl_double val) // logic_input_t // ----------------------------------------------------------------------------- -logic_input_t::logic_input_t(core_device_t &dev, const pstring &aname) - : logic_t(dev, aname, STATE_INP_ACTIVE) +logic_input_t::logic_input_t(core_device_t &dev, const pstring &aname, + nldelegate delegate) + : logic_t(dev, aname, STATE_INP_ACTIVE, delegate) { set_logic_family(dev.logic_family()); netlist().setup().register_term(*this); |