summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-01-07 22:10:36 +0100
committer couriersud <couriersud@gmx.org>2019-01-07 22:11:21 +0100
commit0f0dcd161c01ff01758668a6bbf8de3adb77c62b (patch)
treed21dfa898e1d53b4cbcdf5f553c54548e94d0bc6 /src
parentf3d91f4898f943325929749bbabb97fee5435488 (diff)
Fix reset order for nets. (nw)
Diffstat (limited to 'src')
-rw-r--r--src/lib/netlist/nl_base.cpp16
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)