From badb2a903bcf7887151a3c2d8077799f43a239bd Mon Sep 17 00:00:00 2001 From: couriersud Date: Wed, 22 Jun 2016 23:49:15 +0200 Subject: [PATCH] Shared_ptr ==> unique_ptr. (nw) --- src/lib/netlist/plib/putil.h | 2 +- src/lib/netlist/tools/nl_convert.cpp | 23 ++++++++++++----------- src/lib/netlist/tools/nl_convert.h | 8 ++++---- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index 5f9d1fa4047..e2a247d6cb5 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -51,7 +51,7 @@ namespace plib { indexed_compare(const C& target): m_target(target) {} - bool operator()(int a, int b) const { return m_target[a] < m_target[b]; } + bool operator()(int a, int b) const { return *m_target[a] < *m_target[b]; } const C& m_target; }; diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp index 545377cc494..d8a7401018e 100644 --- a/src/lib/netlist/tools/nl_convert.cpp +++ b/src/lib/netlist/tools/nl_convert.cpp @@ -18,7 +18,7 @@ void nl_convert_base_t::add_pin_alias(const pstring &devname, const pstring &name, const pstring &alias) { pstring pname = devname + "." + name; - m_pins.insert({pname, plib::make_unique(pname, devname + "." + alias)}); + m_pins.emplace(pname, plib::make_unique(pname, devname + "." + alias)); } void nl_convert_base_t::add_ext_alias(const pstring &alias) @@ -26,7 +26,7 @@ void nl_convert_base_t::add_ext_alias(const pstring &alias) m_ext_alias.push_back(alias); } -void nl_convert_base_t::add_device(std::shared_ptr dev) +void nl_convert_base_t::add_device(std::unique_ptr dev) { for (auto & d : m_devs) if (d->name() == dev->name()) @@ -34,20 +34,20 @@ void nl_convert_base_t::add_device(std::shared_ptr dev) out("ERROR: Duplicate device {1} ignored.", dev->name()); return; } - m_devs.push_back(dev); + m_devs.push_back(std::move(dev)); } void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname, const pstring &amodel) { - add_device(std::make_shared(atype, aname, amodel)); + add_device(plib::make_unique(atype, aname, amodel)); } void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname, double aval) { - add_device(std::make_shared(atype, aname, aval)); + add_device(plib::make_unique(atype, aname, aval)); } void nl_convert_base_t::add_device(const pstring &atype, const pstring &aname) { - add_device(std::make_shared(atype, aname)); + add_device(plib::make_unique(atype, aname)); } void nl_convert_base_t::add_term(pstring netname, pstring termname) @@ -58,9 +58,9 @@ void nl_convert_base_t::add_term(pstring netname, pstring termname) net = m_nets[netname].get(); else { - auto nets = std::make_shared(netname); + auto nets = plib::make_unique(netname); net = nets.get(); - m_nets.insert({netname, nets}); + m_nets.emplace(netname, std::move(nets)); } /* if there is a pin alias, translate ... */ @@ -84,10 +84,11 @@ void nl_convert_base_t::dump_nl() net->set_no_export(); } - std::vector sorted; - for (unsigned i=0; i < m_devs.size(); i++) + std::vector sorted; + for (size_t i=0; i < m_devs.size(); i++) sorted.push_back(i); - std::sort(sorted.begin(), sorted.end(), plib::indexed_compare>>(m_devs)); + std::sort(sorted.begin(), sorted.end(), + [&](size_t i1, size_t i2) { return m_devs[i1]->name() < m_devs[i2]->name(); }); for (std::size_t i=0; i dev); + void add_device(std::unique_ptr dev); plib::postringstream m_buf; - std::vector> m_devs; - std::unordered_map > m_nets; + std::vector> m_devs; + std::unordered_map > m_nets; std::vector m_ext_alias; - std::unordered_map> m_pins; + std::unordered_map> m_pins; static unit_t m_units[];