Prevent crash in nettie

We need to avoid collecting invalid layers in the net ties regardless of
their origins

(cherry picked from commit 826f15a1039dee82f48bd3e6de234f4097d34f45)
This commit is contained in:
Seth Hillbrand 2025-09-02 19:18:58 -07:00
parent 76ce4ec535
commit 235e583182

View File

@ -3204,6 +3204,7 @@ void FOOTPRINT::BuildNetTieCache()
m_netTieCache.clear();
std::map<wxString, int> map = MapPadNumbersToNetTieGroups();
std::map<PCB_LAYER_ID, std::vector<PCB_SHAPE*>> layer_shapes;
BOARD* board = GetBoard();
std::for_each( m_drawings.begin(), m_drawings.end(),
[&]( BOARD_ITEM* item )
@ -3212,7 +3213,15 @@ void FOOTPRINT::BuildNetTieCache()
return;
for( PCB_LAYER_ID layer : item->GetLayerSet() )
{
if( !IsCopperLayer( layer ) )
continue;
if( board && !board->GetEnabledLayers().Contains( layer ) )
continue;
layer_shapes[layer].push_back( static_cast<PCB_SHAPE*>( item ) );
}
} );
for( size_t ii = 0; ii < m_pads.size(); ++ii )