Pcbnew: use same null check as eeschema for recently used
When Pcbnew's add footprint browser is run up, it constructs the recently used list without checking for nulls. Although the DoAddLibrary call does internally check for null, it's easier to filter these out before placing into the vector in the first place. The same logic in the symbol tree is already handled in the same way.
This commit is contained in:
parent
0d7708430d
commit
42d20cbd96
|
@ -143,6 +143,7 @@ SCH_BASE_FRAME::COMPONENT_SELECTION SCH_BASE_FRAME::SelectComponentFromLibTree(
|
|||
{
|
||||
LIB_ALIAS* alias = GetLibAlias( i.LibId );
|
||||
|
||||
// This can be null, for example when a symbol has been deleted from a library
|
||||
if( alias )
|
||||
history_list.push_back( alias );
|
||||
}
|
||||
|
|
|
@ -227,17 +227,20 @@ MODULE* PCB_BASE_FRAME::SelectFootprintFromLibTree( LIB_ID aPreselect, bool aAll
|
|||
std::vector<LIB_TREE_ITEM*> historyInfos;
|
||||
|
||||
for( auto const& item : s_ModuleHistoryList )
|
||||
historyInfos.push_back( GFootprintList.GetModuleInfo( item ) );
|
||||
{
|
||||
LIB_TREE_ITEM* fp_info = GFootprintList.GetModuleInfo( item );
|
||||
|
||||
// this can be null, for example, if the footprint has been deleted from a library.
|
||||
if( fp_info != nullptr )
|
||||
historyInfos.push_back( fp_info );
|
||||
}
|
||||
|
||||
adapter->DoAddLibrary( "-- " + _( "Recently Used" ) + " --", wxEmptyString, historyInfos, true );
|
||||
|
||||
if( aPreselect.IsValid() )
|
||||
adapter->SetPreselectNode( aPreselect, 0 );
|
||||
else if( historyInfos.size() )
|
||||
{
|
||||
if( historyInfos[0] ) // Can be null if the footprint was deleted since the last call
|
||||
adapter->SetPreselectNode( historyInfos[0]->GetLibId(), 0 );
|
||||
}
|
||||
adapter->SetPreselectNode( historyInfos[0]->GetLibId(), 0 );
|
||||
|
||||
adapter->AddLibraries();
|
||||
|
||||
|
|
Loading…
Reference in New Issue