From d65148ed0bfb648f5198f6190e058387357f6dad Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 27 Jun 2021 17:29:41 +0200 Subject: [PATCH] Fixed #846 --- src/db/db/dbNetlistCrossReference.cc | 10 ++++++++-- src/laybasic/laybasic/layNetlistBrowserModel.cc | 12 ++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/db/db/dbNetlistCrossReference.cc b/src/db/db/dbNetlistCrossReference.cc index 4ebae1072..99ab8c780 100644 --- a/src/db/db/dbNetlistCrossReference.cc +++ b/src/db/db/dbNetlistCrossReference.cc @@ -113,6 +113,10 @@ NetlistCrossReference::other_net_for (const db::Net *net) const const NetlistCrossReference::PerNetData * NetlistCrossReference::per_net_data_for (const std::pair &nets) const { + if (! nets.first && ! nets.second) { + return 0; + } + std::map, PerNetData>::iterator i = m_per_net_data.find (nets); if (i == m_per_net_data.end ()) { i = m_per_net_data.insert (std::make_pair (nets, PerNetData ())).first; @@ -628,11 +632,13 @@ NetlistCrossReference::build_subcircuit_pin_refs (const std::pair &nets, PerNetData &data) const { - if (! nets.second) { + if (! nets.first && ! nets.second) { + // .. nothing .. + } else if (! nets.second) { init_data_from_single (nets.first, data, true); } else if (! nets.first) { init_data_from_single (nets.second, data, false); - } else if (nets.first) { + } else { build_terminal_refs (nets, data); build_pin_refs (nets, data); build_subcircuit_pin_refs (nets, data); diff --git a/src/laybasic/laybasic/layNetlistBrowserModel.cc b/src/laybasic/laybasic/layNetlistBrowserModel.cc index b160ac73a..5def404a6 100644 --- a/src/laybasic/laybasic/layNetlistBrowserModel.cc +++ b/src/laybasic/laybasic/layNetlistBrowserModel.cc @@ -233,11 +233,11 @@ static QString escaped (const std::string &s) } template -static std::string str_from_expanded_name (const Obj *obj, bool dash_for_empty = false) +static std::string str_from_expanded_name (const Obj *obj, bool indicate_empty = false) { if (obj) { return obj->expanded_name (); - } else if (dash_for_empty) { + } else if (indicate_empty) { return std::string ("-"); } else { return std::string (); @@ -245,11 +245,11 @@ static std::string str_from_expanded_name (const Obj *obj, bool dash_for_empty = } template -static std::string str_from_name (const Obj *obj, bool dash_for_empty = false) +static std::string str_from_name (const Obj *obj, bool indicate_empty = false) { if (obj) { return obj->name (); - } else if (dash_for_empty) { + } else if (indicate_empty) { return std::string ("-"); } else { return std::string (); @@ -264,7 +264,7 @@ static std::string str_from_expanded_names (const std::pair &ob std::string s = str_from_name (objs.first, ! is_single); if (! is_single) { std::string t = str_from_name (objs.second, ! is_single); - if (t != s) { + if (t != s || ! objs.first || ! objs.second) { s += var_sep; s += t; }