Don't propagate secondary connections with the same name

This commit is contained in:
Jon Evans 2019-04-12 09:25:26 -04:00
parent c162ff9076
commit c1ee395303
1 changed files with 23 additions and 0 deletions

View File

@ -1122,6 +1122,23 @@ void CONNECTION_GRAPH::buildConnectionGraph()
wxString name = subgraph->GetNameForDriver( obj );
// Non-power pins should not propagate to neighbors
if( obj->Type() == SCH_PIN_T )
{
if( static_cast<SCH_PIN*>( obj )->IsPowerConnection() )
{
if( name == connection->Name() )
continue;
}
else
{
continue;
}
}
wxLogTrace( "CONN", "Promoting neighbors of %lu (%s) secondary driver %s",
subgraph->m_code, connection->Name(), name );
// If the name is a global, we'll have it in the code map
if( m_net_name_to_code_map.count( name ) )
@ -1136,6 +1153,9 @@ void CONNECTION_GRAPH::buildConnectionGraph()
if( conn->IsBus() || conn->NetCode() != code )
continue;
wxLogTrace( "CONN", "Promoting %lu (%s) to %s",
subgraph_to_update->m_code, conn->Name(), name );
for( auto item : subgraph_to_update->m_items )
{
auto item_conn = item->Connection( subsheet );
@ -1153,6 +1173,9 @@ void CONNECTION_GRAPH::buildConnectionGraph()
if( sg->m_driver_connection->Name() == connection->Name() )
continue;
wxLogTrace( "CONN", "Promoting %lu (%s) to %s",
sg->m_code, sg->m_driver_connection->Name(), connection->Name() );
// Neighbors had better be on the same sheet
wxASSERT( sg->m_sheet == sheet );