Do not leave stale edges floating around

We assume that all net edges are valid in too many places

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21745
This commit is contained in:
Seth Hillbrand
2025-09-15 07:01:18 -07:00
parent 7fdeb4796a
commit b89d77bf36
+9
View File
@@ -552,6 +552,15 @@ void RN_NET::RemoveInvalidRefs()
for( CN_EDGE& edge : m_boardEdges )
edge.RemoveInvalidRefs();
auto is_invalid = []( const CN_EDGE& edge )
{
return !edge.GetSourceNode() || !edge.GetTargetNode();
};
m_rnEdges.erase( std::remove_if( m_rnEdges.begin(), m_rnEdges.end(), is_invalid ), m_rnEdges.end() );
m_boardEdges.erase( std::remove_if( m_boardEdges.begin(), m_boardEdges.end(), is_invalid ),
m_boardEdges.end() );
}