diff options
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r-- | src/lib/netlist/nl_setup.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index c48ca48ae0c..9625ed5b15b 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -41,8 +41,6 @@ setup_t::~setup_t() m_param_values.clear(); m_sources.clear(); - - pstring::resetmem(); } pstring setup_t::build_fqn(const pstring &obj_name) const @@ -97,10 +95,10 @@ bool setup_t::device_exists(const pstring &name) const void setup_t::register_model(const pstring &model_in) { auto pos = model_in.find(" "); - if (pos == model_in.end()) + if (pos == pstring::npos) log().fatal(MF_1_UNABLE_TO_PARSE_MODEL_1, model_in); pstring model = model_in.left(pos).trim().ucase(); - pstring def = model_in.substr(std::next(pos, 1)).trim(); + pstring def = model_in.substr(pos + 1).trim(); if (!m_models.insert({model, def}).second) log().fatal(MF_1_MODEL_ALREADY_EXISTS_1, model_in); } @@ -791,13 +789,13 @@ static pstring model_string(detail::model_map_t &map) void setup_t::model_parse(const pstring &model_in, detail::model_map_t &map) { pstring model = model_in; - pstring::iterator pos(nullptr); + std::size_t pos = 0; pstring key; while (true) { pos = model.find("("); - if (pos != model.end()) break; + if (pos != pstring::npos) break; key = model.ucase(); auto i = m_models.find(key); @@ -818,19 +816,19 @@ void setup_t::model_parse(const pstring &model_in, detail::model_map_t &map) log().fatal(MF_1_MODEL_NOT_FOUND, model_in); } - pstring remainder=model.substr(std::next(pos, 1)).trim(); + pstring remainder = model.substr(pos + 1).trim(); if (!remainder.endsWith(")")) log().fatal(MF_1_MODEL_ERROR_1, model); // FIMXE: Not optimal - remainder = remainder.left(std::next(remainder.begin(), (remainder.len() - 1))); + remainder = remainder.left(remainder.len() - 1); std::vector<pstring> pairs(plib::psplit(remainder," ", true)); for (pstring &pe : pairs) { auto pose = pe.find("="); - if (pose == pe.end()) + if (pose == pstring::npos) log().fatal(MF_1_MODEL_ERROR_ON_PAIR_1, model); - map[pe.left(pose).ucase()] = pe.substr(std::next(pose, 1)); + map[pe.left(pose).ucase()] = pe.substr(pose + 1); } } @@ -854,7 +852,7 @@ nl_double setup_t::model_value(detail::model_map_t &map, const pstring &entity) pstring tmp = model_value_str(map, entity); nl_double factor = NL_FCONST(1.0); - auto p = std::next(tmp.begin(), (tmp.len() - 1)); + auto p = std::next(tmp.begin(), static_cast<pstring::difference_type>(tmp.len() - 1)); switch (*p) { case 'M': factor = 1e6; break; @@ -870,7 +868,7 @@ nl_double setup_t::model_value(detail::model_map_t &map, const pstring &entity) log().fatal(MF_1_UNKNOWN_NUMBER_FACTOR_IN_1, entity); } if (factor != NL_FCONST(1.0)) - tmp = tmp.left(std::next(tmp.begin(), (tmp.len() - 1))); + tmp = tmp.left(tmp.len() - 1); return tmp.as_double() * factor; } @@ -975,8 +973,8 @@ bool setup_t::parse_stream(plib::putf8_reader &istrm, const pstring &name) void setup_t::register_define(pstring defstr) { auto p = defstr.find("="); - if (p != defstr.end()) - register_define(defstr.left(p), defstr.substr(std::next(p, 1))); + if (p != pstring::npos) + register_define(defstr.left(p), defstr.substr(p+1)); else register_define(defstr, "1"); } |