diff options
author | 2019-01-07 22:10:36 +0100 | |
---|---|---|
committer | 2019-01-07 22:11:21 +0100 | |
commit | 0f0dcd161c01ff01758668a6bbf8de3adb77c62b (patch) | |
tree | d21dfa898e1d53b4cbcdf5f553c54548e94d0bc6 /src | |
parent | f3d91f4898f943325929749bbabb97fee5435488 (diff) |
Fix reset order for nets. (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/netlist/nl_base.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index 02898882fce..5b132ebd554 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -506,6 +506,7 @@ void netlist_t::reset() break; case 1: // brute force backward { + log().verbose("Using brute force backward startup strategy"); std::size_t i = m_devices.size(); while (i>0) m_devices[--i]->update_dev(); @@ -513,6 +514,7 @@ void netlist_t::reset() break; case 2: // brute force forward { + log().verbose("Using brute force forward startup strategy"); for (auto &d : m_devices) d->update_dev(); } @@ -886,19 +888,15 @@ void detail::net_t::reset() if (p != nullptr) p->m_cur_Analog = 0.0; - /* rebuild m_list */ + /* rebuild m_list and reset terminals to active or analog out state */ m_list_active.clear(); for (core_terminal_t *ct : m_core_terms) - //FIXME: if below causes mario to crash because it tries to - // remove a non-existing terminal (i.e., STATE_INP_PASSIVE) - // from the deactivate list. - //if (ct->state() != logic_t::STATE_INP_PASSIVE) - m_list_active.push_back(ct); - - for (core_terminal_t *ct : m_core_terms) + { ct->reset(); - + if (ct->state() != logic_t::STATE_INP_PASSIVE) + m_list_active.push_back(ct); + } } void detail::net_t::add_terminal(detail::core_terminal_t &terminal) |