From 436d23064e2834a5e40b3e444ab75da19324f6cb Mon Sep 17 00:00:00 2001 From: Couriersud Date: Thu, 19 Jun 2014 15:21:32 +0000 Subject: [PATCH] Removed a number of "uninitialized member" warnings by using a template wrapper around those members. --- src/emu/netlist/devices/nld_4066.c | 4 ++-- src/emu/netlist/devices/nld_4066.h | 2 +- src/emu/netlist/devices/nld_74107.h | 6 +++--- src/emu/netlist/devices/nld_74123.h | 6 +++--- src/emu/netlist/devices/nld_74153.h | 2 +- src/emu/netlist/devices/nld_7448.h | 2 +- src/emu/netlist/devices/nld_7474.h | 2 +- src/emu/netlist/devices/nld_7483.h | 2 +- src/emu/netlist/devices/nld_7490.h | 2 +- src/emu/netlist/devices/nld_7493.h | 2 +- src/emu/netlist/devices/nld_74ls629.h | 2 +- src/emu/netlist/devices/nld_9316.c | 8 ++++---- src/emu/netlist/devices/nld_9316.h | 8 ++++---- src/emu/netlist/devices/nld_log.h | 2 +- src/emu/netlist/devices/nld_ne555.h | 2 +- src/emu/netlist/nl_base.h | 22 ++++++++++++++++++++++ 16 files changed, 48 insertions(+), 26 deletions(-) diff --git a/src/emu/netlist/devices/nld_4066.c b/src/emu/netlist/devices/nld_4066.c index 19f67543516..2368f18c864 100644 --- a/src/emu/netlist/devices/nld_4066.c +++ b/src/emu/netlist/devices/nld_4066.c @@ -30,10 +30,10 @@ NETLIB_RESET(4066) NETLIB_UPDATE(4066) { - double sup = (m_supply->vdd() - m_supply->vss()); + double sup = (m_supply.get()->vdd() - m_supply.get()->vss()); double low = 0.45 * sup; double high = 0.55 * sup; - double in = INPANALOG(m_control) - m_supply->vss(); + double in = INPANALOG(m_control) - m_supply.get()->vss(); double rON = 270.0 * 5.0 / sup; if (in < low) diff --git a/src/emu/netlist/devices/nld_4066.h b/src/emu/netlist/devices/nld_4066.h index ddd12ef0a50..8db2c21be2e 100644 --- a/src/emu/netlist/devices/nld_4066.h +++ b/src/emu/netlist/devices/nld_4066.h @@ -45,7 +45,7 @@ public: netlist_analog_input_t m_control; NETLIB_NAME(R) m_R; - NETLIB_NAME(vdd_vss) *m_supply; + netlist_state_tm_supply; ); NETLIB_DEVICE(4066_dip, diff --git a/src/emu/netlist/devices/nld_74107.h b/src/emu/netlist/devices/nld_74107.h index 150516a00c3..8f96841d3c0 100644 --- a/src/emu/netlist/devices/nld_74107.h +++ b/src/emu/netlist/devices/nld_74107.h @@ -80,9 +80,9 @@ NETLIB_SUBDEVICE(74107Asub, netlist_ttl_output_t m_Q; netlist_ttl_output_t m_QQ; - netlist_sig_t m_Q1; - netlist_sig_t m_Q2; - netlist_sig_t m_F; + netlist_state_t m_Q1; + netlist_state_t m_Q2; + netlist_state_t m_F; ATTR_HOT void newstate(const netlist_sig_t state); diff --git a/src/emu/netlist/devices/nld_74123.h b/src/emu/netlist/devices/nld_74123.h index 6a81b9bac7c..80ed26ba832 100644 --- a/src/emu/netlist/devices/nld_74123.h +++ b/src/emu/netlist/devices/nld_74123.h @@ -43,9 +43,9 @@ public: netlist_analog_input_t m_CV; - netlist_sig_t m_last_trig; - UINT8 m_state; - double m_KP; + netlist_state_t m_last_trig; + netlist_state_t m_state; + netlist_state_t m_KP; netlist_param_double_t m_K; netlist_param_double_t m_RI; diff --git a/src/emu/netlist/devices/nld_74153.h b/src/emu/netlist/devices/nld_74153.h index 03c942f9a70..5f633ef00f0 100644 --- a/src/emu/netlist/devices/nld_74153.h +++ b/src/emu/netlist/devices/nld_74153.h @@ -66,7 +66,7 @@ NETLIB_SUBDEVICE(74153sub, netlist_ttl_output_t m_Y; - int m_chan; + netlist_state_t m_chan; ); NETLIB_DEVICE(74153, diff --git a/src/emu/netlist/devices/nld_7448.h b/src/emu/netlist/devices/nld_7448.h index 2c06638f93a..f1b0fd7fcaa 100644 --- a/src/emu/netlist/devices/nld_7448.h +++ b/src/emu/netlist/devices/nld_7448.h @@ -49,7 +49,7 @@ NETLIB_SUBDEVICE(7448_sub, netlist_ttl_input_t m_D; netlist_ttl_input_t m_RBIQ; - UINT8 m_state; + netlist_state_t m_state; netlist_ttl_output_t m_a; netlist_ttl_output_t m_b; diff --git a/src/emu/netlist/devices/nld_7474.h b/src/emu/netlist/devices/nld_7474.h index 1a2f7d217b9..1629026f43e 100644 --- a/src/emu/netlist/devices/nld_7474.h +++ b/src/emu/netlist/devices/nld_7474.h @@ -57,7 +57,7 @@ NETLIB_SUBDEVICE(7474sub, netlist_ttl_input_t m_CLK; - UINT8 m_nextD; + netlist_state_t m_nextD; netlist_ttl_output_t m_Q; netlist_ttl_output_t m_QQ; diff --git a/src/emu/netlist/devices/nld_7483.h b/src/emu/netlist/devices/nld_7483.h index d2da6ecc517..82a3e2f4f8f 100644 --- a/src/emu/netlist/devices/nld_7483.h +++ b/src/emu/netlist/devices/nld_7483.h @@ -55,7 +55,7 @@ NETLIB_DEVICE(7483, netlist_ttl_input_t m_B3; netlist_ttl_input_t m_B4; - UINT8 m_lastr; + netlist_state_t m_lastr; netlist_ttl_output_t m_S1; netlist_ttl_output_t m_S2; diff --git a/src/emu/netlist/devices/nld_7490.h b/src/emu/netlist/devices/nld_7490.h index f54c299fe8b..4263ec124da 100644 --- a/src/emu/netlist/devices/nld_7490.h +++ b/src/emu/netlist/devices/nld_7490.h @@ -80,7 +80,7 @@ NETLIB_DEVICE(7490, netlist_ttl_input_t m_A; netlist_ttl_input_t m_B; - UINT8 m_cnt; + netlist_state_t m_cnt; netlist_ttl_output_t m_Q[4]; ); diff --git a/src/emu/netlist/devices/nld_7493.h b/src/emu/netlist/devices/nld_7493.h index 8c856048a7c..4ff18ec9e18 100644 --- a/src/emu/netlist/devices/nld_7493.h +++ b/src/emu/netlist/devices/nld_7493.h @@ -73,7 +73,7 @@ NETLIB_SUBDEVICE(7493ff, netlist_ttl_input_t m_I; netlist_ttl_output_t m_Q; - UINT8 m_reset; + netlist_state_t m_reset; ); NETLIB_DEVICE(7493, diff --git a/src/emu/netlist/devices/nld_74ls629.h b/src/emu/netlist/devices/nld_74ls629.h index b4f011cf337..fd128113160 100644 --- a/src/emu/netlist/devices/nld_74ls629.h +++ b/src/emu/netlist/devices/nld_74ls629.h @@ -40,7 +40,7 @@ NETLIB_SUBDEVICE(SN74LS629clk, netlist_logic_output_t m_Y; netlist_time m_inc; - netlist_sig_t m_enableq; + netlist_state_t m_enableq; ); NETLIB_DEVICE_WITH_PARAMS(SN74LS629, diff --git a/src/emu/netlist/devices/nld_9316.c b/src/emu/netlist/devices/nld_9316.c index 952ced960ff..c4611dd2bb7 100644 --- a/src/emu/netlist/devices/nld_9316.c +++ b/src/emu/netlist/devices/nld_9316.c @@ -73,9 +73,9 @@ NETLIB_START(9316_sub) register_output("QD", m_QD); register_output("RC", m_RC); - save(NAME(m_cnt)); - save(NAME(m_loadq)); - save(NAME(m_ent)); + save(NAME(m_cnt.ref())); + save(NAME(m_loadq.ref())); + save(NAME(m_ent.ref())); } NETLIB_RESET(9316_sub) @@ -103,7 +103,7 @@ NETLIB_UPDATE(9316_sub) } else { - cnt = m_ABCD->read_ABCD(); + cnt = m_ABCD.get()->read_ABCD(); update_outputs_all(cnt); OUTLOGIC(m_RC, m_ent & (cnt == 0x0f), NLTIME_FROM_NS(20)); } diff --git a/src/emu/netlist/devices/nld_9316.h b/src/emu/netlist/devices/nld_9316.h index 524871d8ea5..99fac2c452d 100644 --- a/src/emu/netlist/devices/nld_9316.h +++ b/src/emu/netlist/devices/nld_9316.h @@ -81,10 +81,10 @@ NETLIB_SUBDEVICE(9316_sub, netlist_ttl_input_t m_CLK; - UINT8 m_cnt; - NETLIB_NAME(9316_subABCD) *m_ABCD; - netlist_sig_t m_loadq; - netlist_sig_t m_ent; + netlist_state_t m_cnt; + netlist_state_t m_ABCD; + netlist_state_t m_loadq; + netlist_state_t m_ent; netlist_ttl_output_t m_QA; netlist_ttl_output_t m_QB; diff --git a/src/emu/netlist/devices/nld_log.h b/src/emu/netlist/devices/nld_log.h index 738c69fc700..b227a4e6e91 100644 --- a/src/emu/netlist/devices/nld_log.h +++ b/src/emu/netlist/devices/nld_log.h @@ -28,7 +28,7 @@ NETLIB_DEVICE(log, ~NETLIB_NAME(log)(); netlist_analog_input_t m_I; protected: - FILE *m_file; + netlist_state_t m_file; ); #define LOGD(_name, _I, _I2) \ diff --git a/src/emu/netlist/devices/nld_ne555.h b/src/emu/netlist/devices/nld_ne555.h index 8c9c1baa420..88df3fe7e44 100644 --- a/src/emu/netlist/devices/nld_ne555.h +++ b/src/emu/netlist/devices/nld_ne555.h @@ -37,7 +37,7 @@ NETLIB_DEVICE(NE555, netlist_analog_input_t m_TRIG; netlist_analog_output_t m_OUT; - bool m_last_out; + netlist_state_t m_last_out; inline double clamp(const double v, const double a, const double b); diff --git a/src/emu/netlist/nl_base.h b/src/emu/netlist/nl_base.h index 0256b6f03a7..cff28224f7c 100644 --- a/src/emu/netlist/nl_base.h +++ b/src/emu/netlist/nl_base.h @@ -276,6 +276,24 @@ struct netlist_logic_family_desc_t extern netlist_logic_family_desc_t netlist_family_ttl; + +// ---------------------------------------------------------------------------------------- +// netlist_state_t +// ---------------------------------------------------------------------------------------- + +template< typename X> +class netlist_state_t { +public: + inline netlist_state_t() : m_x(static_cast(0)) {} + inline netlist_state_t(const X& x_) : m_x(x_) {} + inline const X& get() const { return m_x; } + inline X& ref() { return m_x; } + inline operator const X&() const { return m_x; } + inline operator X&() { return m_x; } +private: + X m_x; +}; + // ---------------------------------------------------------------------------------------- // netlist_object_t // ---------------------------------------------------------------------------------------- @@ -321,6 +339,10 @@ public: ATTR_COLD const pstring &name() const; PSTATE_INTERFACE_DECL() + template ATTR_COLD void save(netlist_state_t &state, const pstring &stname) + { + save(state.ref(), stname); + } ATTR_HOT inline const type_t type() const { return m_objtype; } ATTR_HOT inline const family_t family() const { return m_family; }