7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-21 19:13:44 +00:00

Vias: prevent assertion in GetEffectiveShape

This commit is contained in:
Jon Evans 2024-10-19 14:56:44 -04:00
parent 251a6a27aa
commit edfa57909b

View File

@ -1908,8 +1908,25 @@ std::shared_ptr<SHAPE> PCB_VIA::GetEffectiveShape( PCB_LAYER_ID aLayer, FLASHING
if( aFlash == FLASHING::ALWAYS_FLASHED
|| ( aFlash == FLASHING::DEFAULT && FlashLayer( aLayer ) ) )
{
PCB_LAYER_ID cuLayer = m_padStack.EffectiveLayerFor( aLayer );
return std::make_shared<SHAPE_CIRCLE>( m_Start, GetWidth( cuLayer ) / 2 );
int width = 0;
if( aLayer == UNDEFINED_LAYER )
{
Padstack().ForEachUniqueLayer(
[&]( PCB_LAYER_ID layer )
{
width = std::max( width, GetWidth( layer ) );
} );
width /= 2;
}
else
{
PCB_LAYER_ID cuLayer = m_padStack.EffectiveLayerFor( aLayer );
width = GetWidth( cuLayer ) / 2;
}
return std::make_shared<SHAPE_CIRCLE>( m_Start, width );
}
else
{