summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_lists.h
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-06-16 00:01:47 +0200
committer couriersud <couriersud@arcor.de>2016-06-16 00:01:47 +0200
commit404e589cff3123bd146e8339570cd07869b2e91b (patch)
tree99a1a99e8f061178ff398a30da181184a8621110 /src/lib/netlist/nl_lists.h
parent809de6dd7ff20bcb2a214596bb9232825e944524 (diff)
Merge netlist_dev branch, all code_refactoring: (nw)
Object model optimisation. Merge remote-tracking branch 'origin/master' into netlist_dev Fix a merge issue. #if ==> #elif. Ouch. Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. Change UINT8 to uint_[fast|least|8_t. Move state_var so it can be used by base devices as well. Remove last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. - More c++. - Simplify main processing loop. As a nice side-effect that squeezed out some cycles. - More cycle squeezing. - Removed pvector_t. - Use std::sort. - Refactored netlist state manager. - Introduction of state_var object template to be used on device state members. - Changed remaining save occurrences to state_var. - Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. - Remove hashmap_t. Fix kidniki regression.
Diffstat (limited to 'src/lib/netlist/nl_lists.h')
-rw-r--r--src/lib/netlist/nl_lists.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/netlist/nl_lists.h b/src/lib/netlist/nl_lists.h
index b3443ed2297..475e0e285c2 100644
--- a/src/lib/netlist/nl_lists.h
+++ b/src/lib/netlist/nl_lists.h
@@ -68,13 +68,12 @@ namespace netlist
#if HAS_OPENMP && USE_OPENMP
m_lock = 0;
#endif
- //nl_assert(m_end - m_list < Size);
}
- entry_t pop() NOEXCEPT { return *(--m_end); }
- entry_t top() const NOEXCEPT { return *(m_end-1); }
+ entry_t pop() NOEXCEPT { return *(--m_end); }
+ const entry_t &top() const NOEXCEPT { return *(m_end-1); }
- void remove(const Element &elem) NOEXCEPT
+ void remove(const Element &elem) NOEXCEPT
{
/* Lock */
#if HAS_OPENMP && USE_OPENMP
@@ -101,6 +100,12 @@ namespace netlist
#endif
}
+ void retime(const Time t, const Element &elem) NOEXCEPT
+ {
+ remove(elem);
+ push(t, elem);
+ }
+
void clear()
{
m_end = &m_list[0];