From f9fa3d3aa348f3764c1dc4a02457da44fc5b8012 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 11 Jul 2020 14:41:42 +0200 Subject: [PATCH] WIP: some safety --- .../laybasic/layNetlistCrossReferenceModel.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/laybasic/laybasic/layNetlistCrossReferenceModel.cc b/src/laybasic/laybasic/layNetlistCrossReferenceModel.cc index 60a989c07..fc82a79a6 100644 --- a/src/laybasic/laybasic/layNetlistCrossReferenceModel.cc +++ b/src/laybasic/laybasic/layNetlistCrossReferenceModel.cc @@ -359,13 +359,15 @@ void NetlistCrossReferenceModel::ensure_subcircuit_data_built () const for (size_t i = 0; i < sc_pair.first->circuit_ref ()->pin_count (); ++i) { const db::NetSubcircuitPinRef *n1 = sc_pair.first->netref_for_pin (i); - const db::NetSubcircuitPinRef *n2 = 0; - std::multimap::iterator m = first_net_to_other_netref.find (n1->net ()); - if (m != first_net_to_other_netref.end () && m->first == n1->net ()) { - n2 = m->second; - first_net_to_other_netref.erase (m); + if (n1) { + const db::NetSubcircuitPinRef *n2 = 0; + std::multimap::iterator m = first_net_to_other_netref.find (n1->net ()); + if (m != first_net_to_other_netref.end () && m->first == n1->net ()) { + n2 = m->second; + first_net_to_other_netref.erase (m); + } + sc_data.nets_per_pins.push_back (std::make_pair (n1, n2)); } - sc_data.nets_per_pins.push_back (std::make_pair (n1, n2)); } std::sort (sc_data.nets_per_pins.begin (), sc_data.nets_per_pins.end (), CompareNetRefsByPins ());