Range checking.

This commit is contained in:
Jeff Young 2025-08-03 14:06:55 +01:00
parent 558627289b
commit a8df4b16e2
3 changed files with 10 additions and 7 deletions

View File

@ -521,8 +521,10 @@ bool FOOTPRINT::Deserialize( const google::protobuf::Any &aContainer )
for( int layerMsg : footprint.definition().private_layers() )
{
auto layer = static_cast<types::BoardLayer>( layerMsg );
privateLayers.set( FromProtoEnum<PCB_LAYER_ID, types::BoardLayer>( layer ) );
auto layer = FromProtoEnum<PCB_LAYER_ID, types::BoardLayer>( static_cast<types::BoardLayer>( layerMsg ) );
if( layer > UNDEFINED_LAYER )
privateLayers.set( layer );
}
SetPrivateLayers( privateLayers );

View File

@ -1046,14 +1046,14 @@ PAD* CADSTAR_PCB_ARCHIVE_LOADER::getKiCadPad( const COMPONENT_PAD& aCadstarPad,
pad->SetLocalSolderPasteMarginRatio( 0.0 );
bool complexPadErrorLogged = false;
for( auto& reassign : csPadcode.Reassigns )
for( auto& [layer, shape] : csPadcode.Reassigns )
{
PCB_LAYER_ID kiLayer = getKiCadLayer( reassign.first );
CADSTAR_PAD_SHAPE shape = reassign.second;
PCB_LAYER_ID kiLayer = getKiCadLayer( layer );
if( shape.Size == 0 )
{
padLayerSet.reset( kiLayer );
if( kiLayer > UNDEFINED_LAYER )
padLayerSet.reset( kiLayer );
}
else
{

View File

@ -96,7 +96,8 @@ void RATSNEST_VIEW_ITEM::ViewDraw( int aLayer, KIGFX::VIEW* aView ) const
// If we are in "other layers off" mode, the active layer is the only visible layer
if( rs->m_ContrastModeDisplay == HIGH_CONTRAST_MODE::HIDDEN )
{
visibleLayers.set( rs->GetPrimaryHighContrastLayer() );
if( rs->GetPrimaryHighContrastLayer() > UNDEFINED_LAYER )
visibleLayers.set( rs->GetPrimaryHighContrastLayer() );
}
else
{