From 7baccba01cdb32ed5c95f99ee4a960ec7eb73f85 Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Fri, 5 Apr 2024 08:16:29 -0400 Subject: [PATCH] Coverity fixes --- common/api/api_utils.cpp | 3 +++ eeschema/dialogs/dialog_field_properties.cpp | 2 +- eeschema/dialogs/dialog_pin_properties.cpp | 2 +- eeschema/tools/symbol_editor_pin_tool.cpp | 7 ++++--- eeschema/widgets/search_handlers.cpp | 4 ++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/common/api/api_utils.cpp b/common/api/api_utils.cpp index cd83dde614..b66ffcc7fa 100644 --- a/common/api/api_utils.cpp +++ b/common/api/api_utils.cpp @@ -82,6 +82,9 @@ void PackPolyLine( kiapi::common::types::PolyLine& aOutput, const SHAPE_LINE_CHA { for( int vertex = 0; vertex < aSlc.PointCount(); vertex = aSlc.NextShape( vertex ) ) { + if( vertex < 0 ) + break; + kiapi::common::types::PolyLineNode* node = aOutput.mutable_nodes()->Add(); if( aSlc.IsPtOnArc( vertex ) ) diff --git a/eeschema/dialogs/dialog_field_properties.cpp b/eeschema/dialogs/dialog_field_properties.cpp index 5bb6c125a5..7770e65b59 100644 --- a/eeschema/dialogs/dialog_field_properties.cpp +++ b/eeschema/dialogs/dialog_field_properties.cpp @@ -432,7 +432,7 @@ DIALOG_LIB_FIELD_PROPERTIES::DIALOG_LIB_FIELD_PROPERTIES( SCH_BASE_FRAME* aParen if( m_fieldId == FOOTPRINT_FIELD ) { - const LIB_SYMBOL* parentSymbol = dynamic_cast( aField->GetParentSymbol() ); + const LIB_SYMBOL* parentSymbol = static_cast( aField->GetParentSymbol() ); /* * Symbol netlist format: diff --git a/eeschema/dialogs/dialog_pin_properties.cpp b/eeschema/dialogs/dialog_pin_properties.cpp index c6db906606..f7a492ae40 100644 --- a/eeschema/dialogs/dialog_pin_properties.cpp +++ b/eeschema/dialogs/dialog_pin_properties.cpp @@ -137,7 +137,7 @@ DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES( SYMBOL_EDIT_FRAME* parent, LIB_PIN m_initialized( false ) { // Creates a dummy pin to show on a panel, inside this dialog: - m_dummyParent = new LIB_SYMBOL( *dynamic_cast( m_pin->GetParentSymbol() ) ); + m_dummyParent = new LIB_SYMBOL( *static_cast( m_pin->GetParentSymbol() ) ); m_dummyPin = new LIB_PIN( *m_pin ); m_dummyPin->SetParent( m_dummyParent ); m_dummyParent->SetShowPinNames( true ); diff --git a/eeschema/tools/symbol_editor_pin_tool.cpp b/eeschema/tools/symbol_editor_pin_tool.cpp index 5b4a682a37..8c8d05f4bc 100644 --- a/eeschema/tools/symbol_editor_pin_tool.cpp +++ b/eeschema/tools/symbol_editor_pin_tool.cpp @@ -121,7 +121,7 @@ bool SYMBOL_EDITOR_PIN_TOOL::EditPinProperties( LIB_PIN* aPin ) LIB_PIN original_pin( *aPin ); DIALOG_PIN_PROPERTIES dlg( m_frame, aPin ); SCH_COMMIT commit( m_frame ); - LIB_SYMBOL* parentSymbol = dynamic_cast( aPin->GetParentSymbol() ); + LIB_SYMBOL* parentSymbol = static_cast( aPin->GetParentSymbol() ); if( aPin->GetEditFlags() == 0 ) commit.Modify( parentSymbol ); @@ -340,7 +340,7 @@ void SYMBOL_EDITOR_PIN_TOOL::CreateImagePins( LIB_PIN* aPin ) if( ii == aPin->GetUnit() ) continue; - newPin = (LIB_PIN*) aPin->Duplicate(); + newPin = static_cast( aPin->Duplicate() ); // To avoid mistakes, gives this pin a new pin number because // it does no have the save pin number as the master pin @@ -353,7 +353,8 @@ void SYMBOL_EDITOR_PIN_TOOL::CreateImagePins( LIB_PIN* aPin ) try { - dynamic_cast( aPin->GetParentSymbol() )->AddDrawItem( newPin ); + LIB_SYMBOL* symbol = static_cast( aPin->GetParentSymbol() ); + symbol->AddDrawItem( newPin ); } catch( const boost::bad_pointer& e ) { diff --git a/eeschema/widgets/search_handlers.cpp b/eeschema/widgets/search_handlers.cpp index 458b6cb878..dda47e060b 100644 --- a/eeschema/widgets/search_handlers.cpp +++ b/eeschema/widgets/search_handlers.cpp @@ -154,9 +154,9 @@ int SYMBOL_SEARCH_HANDLER::Search( const wxString& aQuery ) auto search = [frp]( SCH_ITEM* item, SCH_SHEET_PATH* sheet ) { - if( item->Type() == SCH_SYMBOL_T ) + if( item && item->Type() == SCH_SYMBOL_T ) { - SCH_SYMBOL* sym = dynamic_cast( item ); + SCH_SYMBOL* sym = static_cast( item ); // IsPower depends on non-missing lib symbol association if( !sym->IsMissingLibSymbol() && sym->IsPower() )