diff options
Diffstat (limited to 'src/lib/netlist/nl_base.h')
| -rw-r--r-- | src/lib/netlist/nl_base.h | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index b08ce88eb02..d31c39f2eda 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -273,8 +273,9 @@ namespace netlist class fatalerror_e : public plib::pexception { public: - fatalerror_e(const pstring &text) : plib::pexception(text) { } - virtual ~fatalerror_e() throw() {} + explicit fatalerror_e(const pstring text) : plib::pexception(text) { } + fatalerror_e(const fatalerror_e &e) : plib::pexception(e) { } + virtual ~fatalerror_e() noexcept {} }; class logic_output_t; @@ -663,6 +664,7 @@ namespace netlist bool is_analog() const; void toggle_new_Q() { m_new_Q ^= 1; } + void force_queue_execution() { m_new_Q = (m_cur_Q ^ 1); } void push_to_queue(const netlist_time delay) NOEXCEPT; void reschedule_in_queue(const netlist_time delay) NOEXCEPT; @@ -711,7 +713,7 @@ namespace netlist public: logic_net_t(netlist_t &nl, const pstring &aname, core_terminal_t *mr = nullptr); - virtual ~logic_net_t() { }; + virtual ~logic_net_t() { } netlist_sig_t Q() const { return m_cur_Q; } netlist_sig_t new_Q() const { return m_new_Q; } @@ -755,7 +757,7 @@ namespace netlist analog_net_t(netlist_t &nl, const pstring &aname, core_terminal_t *mr = nullptr); - virtual ~analog_net_t() { }; + virtual ~analog_net_t() { } nl_double Q_Analog() const { return m_cur_Analog; } nl_double &Q_Analog_state_ptr() { return m_cur_Analog; } @@ -1139,11 +1141,11 @@ namespace netlist template<typename O, typename C> void save(O &owner, C &state, const pstring &stname) { - this->state().save_item((void *)&owner, state, pstring(owner.name()) + "." + stname); + this->state().save_item(static_cast<void *>(&owner), state, pstring(owner.name()) + "." + stname); } template<typename O, typename C> void save(O &owner, C *state, const pstring &stname, const int count) { - this->state().save_state_ptr((void *)&owner, pstring(owner.name()) + "." + stname, plib::state_manager_t::datatype_f<C>::f(), count, state); + this->state().save_state_ptr(static_cast<void *>(&owner), pstring(owner.name()) + "." + stname, plib::state_manager_t::datatype_f<C>::f(), count, state); } virtual void reset(); @@ -1160,13 +1162,6 @@ namespace netlist /* sole use is to manage lifetime of family objects */ std::vector<std::pair<pstring, std::unique_ptr<logic_family_desc_t>>> m_family_cache; - protected: - - // performance - nperfcount_t m_perf_out_processed; - nperfcount_t m_perf_inp_processed; - nperfcount_t m_perf_inp_active; - private: plib::state_manager_t m_state; /* mostly rw */ @@ -1185,6 +1180,11 @@ namespace netlist setup_t *m_setup; plib::plog_base<NL_DEBUG> m_log; plib::dynlib *m_lib; // external lib needs to be loaded as long as netlist exists + + // performance + nperfcount_t m_perf_out_processed; + nperfcount_t m_perf_inp_processed; + nperfcount_t m_perf_inp_active; }; // ----------------------------------------------------------------------------- |
