CONNECTION_GRAPH::Recalculate(): ensure unit and pin list are up to date.
Multi-unit symbols created previously incorrect connections, due to not up to date or missing data. I also saw crashes due to this not up to date data Fixes #12149 https://gitlab.com/kicad/code/kicad/issues/12149
This commit is contained in:
parent
16d74a7e42
commit
7441510b3c
|
@ -469,6 +469,14 @@ void CONNECTION_GRAPH::Recalculate( const SCH_SHEET_LIST& aSheetList, bool aUnco
|
|||
{
|
||||
if( item->IsConnectable() && ( aUnconditional || item->IsConnectivityDirty() ) )
|
||||
items.push_back( item );
|
||||
|
||||
// Ensure the hierarchy info stored in SCREENS is built and up to date
|
||||
// (multi-unit symbols and pin mapping)
|
||||
if( item->Type() == SCH_SYMBOL_T )
|
||||
{
|
||||
SCH_SYMBOL* symbol = static_cast<SCH_SYMBOL*>( item );
|
||||
symbol->UpdateUnit( symbol->GetUnitSelection( &sheet ) );
|
||||
}
|
||||
}
|
||||
|
||||
m_items.reserve( m_items.size() + items.size() );
|
||||
|
|
Loading…
Reference in New Issue