Code simplification

This commit is contained in:
couriersud 2016-05-11 02:47:22 +02:00
parent bd1123dc30
commit c2fb41964c
6 changed files with 36 additions and 46 deletions

View File

@ -300,8 +300,7 @@ void netlist_mame_device_t::device_start()
//printf("clock is %d\n", clock());
m_netlist = global_alloc(netlist_mame_t(*this, "netlist"));
m_setup = global_alloc(netlist::setup_t(m_netlist));
m_setup->init();
m_setup = global_alloc(netlist::setup_t(*m_netlist));
// register additional devices
@ -353,9 +352,9 @@ void netlist_mame_device_t::device_reset()
void netlist_mame_device_t::device_stop()
{
LOG_DEV_CALLS(("device_stop\n"));
m_setup->print_stats();
netlist().print_stats();
m_netlist->stop();
netlist().stop();
global_free(m_setup);
m_setup = nullptr;

View File

@ -379,6 +379,21 @@ ATTR_HOT void netlist_t::process_queue(const netlist_time &delta)
}
}
void netlist_t::print_stats() const
{
#if (NL_KEEP_STATISTICS)
{
for (std::size_t i = 0; i < m_started_devices.size(); i++)
{
core_device_t *entry = m_started_devices[i];
printf("Device %20s : %12d %12d %15ld\n", entry->name().cstr(), entry->stat_call_count, entry->stat_update_count, (long int) entry->stat_total_time / (entry->stat_update_count + 1));
}
printf("Queue Pushes %15d\n", queue().m_prof_call);
printf("Queue Moves %15d\n", queue().m_prof_sortmove);
}
#endif
}
// ----------------------------------------------------------------------------------------
// Default netlist elements ...
// ----------------------------------------------------------------------------------------
@ -409,7 +424,7 @@ ATTR_COLD core_device_t::~core_device_t()
ATTR_COLD void core_device_t::start_dev()
{
#if (NL_KEEP_STATISTICS)
netlist().m_started_devices.add(this, false);
netlist().m_started_devices.push_back(this);
#endif
#if (NL_PMF_TYPE == NL_PMF_TYPE_GNUC_PMF)
void (core_device_t::* pFunc)() = &core_device_t::update;
@ -656,7 +671,7 @@ ATTR_HOT /* inline */ void net_t::update_devs()
for (core_terminal_t *p = m_list_active.first(); p != nullptr; p = p->next())
{
inc_stat(p->netdev().stat_call_count);
inc_stat(p->device().stat_call_count);
if ((p->state() & mask) != 0)
p->device().update_dev();
}

View File

@ -1269,7 +1269,7 @@ namespace netlist
pvector_t<device_t *> m_devices;
net_t::list_t m_nets;
#if (NL_KEEP_STATISTICS)
pnamedlist_t<core_device_t *> m_started_devices;
pvector_t<core_device_t *> m_started_devices;
#endif
ATTR_COLD plog_base<NL_DEBUG> &log() { return m_log; }
@ -1279,6 +1279,8 @@ namespace netlist
ATTR_COLD pdynlib &lib() { return *m_lib; }
void print_stats() const;
protected:
#if (NL_KEEP_STATISTICS)

View File

@ -50,22 +50,17 @@ NETLIST_END()
namespace netlist
{
setup_t::setup_t(netlist_t *netlist)
setup_t::setup_t(netlist_t &netlist)
: m_netlist(netlist)
, m_factory(*this)
, m_proxy_cnt(0)
, m_frontier_cnt(0)
{
netlist->set_setup(this);
m_factory = palloc(factory_list_t(*this));
}
void setup_t::init()
{
initialize_factory(factory());
netlist.set_setup(this);
initialize_factory(m_factory);
NETLIST_NAME(base)(*this);
}
setup_t::~setup_t()
{
m_links.clear();
@ -75,7 +70,6 @@ setup_t::~setup_t()
m_param_values.clear();
netlist().set_setup(nullptr);
pfree(m_factory);
m_sources.clear_and_free();
pstring::resetmem();
@ -880,21 +874,6 @@ void setup_t::start_devices()
netlist().start();
}
void setup_t::print_stats() const
{
#if (NL_KEEP_STATISTICS)
{
for (std::size_t i = 0; i < netlist().m_started_devices.size(); i++)
{
core_device_t *entry = netlist().m_started_devices[i];
printf("Device %20s : %12d %12d %15ld\n", entry->name(), entry->stat_call_count, entry->stat_update_count, (long int) entry->stat_total_time / (entry->stat_update_count + 1));
}
printf("Queue Pushes %15d\n", netlist().queue().m_prof_call);
printf("Queue Moves %15d\n", netlist().queue().m_prof_sortmove);
}
#endif
}
// ----------------------------------------------------------------------------------------
// Model / family
// ----------------------------------------------------------------------------------------

View File

@ -102,16 +102,15 @@ namespace netlist
using link_t = std::pair<pstring, pstring>;
setup_t(netlist_t *netlist);
setup_t(netlist_t &netlist);
~setup_t();
void init();
netlist_t &netlist() { return *m_netlist; }
const netlist_t &netlist() const { return *m_netlist; }
netlist_t &netlist() { return m_netlist; }
const netlist_t &netlist() const { return m_netlist; }
pstring build_fqn(const pstring &obj_name) const;
void register_object(device_t &dev, const pstring &name, object_t &obj);
void register_dev(device_t *dev);
void register_dev(const pstring &classname, const pstring &name);
@ -134,7 +133,6 @@ namespace netlist
void remove_connections(const pstring attach);
void register_object(device_t &dev, const pstring &name, object_t &obj);
bool connect(core_terminal_t &t1, core_terminal_t &t2);
bool device_exists(const pstring name) const;
@ -157,13 +155,11 @@ namespace netlist
void register_source(source_t *src) { m_sources.push_back(src); }
factory_list_t &factory() { return *m_factory; }
const factory_list_t &factory() const { return *m_factory; }
factory_list_t &factory() { return m_factory; }
const factory_list_t &factory() const { return m_factory; }
bool is_library_item(const pstring &name) const { return m_lib.contains(name); }
void print_stats() const;
/* model / family related */
logic_family_desc_t *family_from_model(const pstring &model);
@ -194,7 +190,7 @@ namespace netlist
const pstring resolve_alias(const pstring &name) const;
devices::nld_base_proxy *get_d_a_proxy(core_terminal_t &out);
netlist_t *m_netlist;
netlist_t &m_netlist;
phashmap_t<pstring, pstring> m_alias;
phashmap_t<pstring, param_t *> m_params;
@ -204,7 +200,7 @@ namespace netlist
pvector_t<link_t> m_links;
pvector_t<std::pair<pstring, base_factory_t *>> m_device_factory;
factory_list_t *m_factory;
factory_list_t m_factory;
phashmap_t<pstring, pstring> m_models;

View File

@ -103,8 +103,7 @@ public:
void init()
{
m_setup = palloc(netlist::setup_t(this));
m_setup->init();
m_setup = palloc(netlist::setup_t(*this));
}
void read_netlist(const pstring &filename, const pstring &name)