Fixup some Coverity issues.

This commit is contained in:
Jeff Young 2020-03-21 16:31:48 +00:00
parent e0e4ea6223
commit 93b7eacfb2
9 changed files with 131 additions and 94 deletions

View File

@ -123,14 +123,19 @@ public:
};
AUTOPLACER( SCH_COMPONENT* aComponent, SCH_SCREEN* aScreen )
:m_screen( aScreen ), m_component( aComponent )
AUTOPLACER( SCH_COMPONENT* aComponent, SCH_SCREEN* aScreen ) :
m_screen( aScreen ), m_component( aComponent )
{
m_component->GetFields( m_fields, /* aVisibleOnly */ true );
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
{
m_allow_rejustify = cfg->m_AutoplaceFields.allow_rejustify;
m_align_to_grid = cfg->m_AutoplaceFields.align_to_grid;
}
m_comp_bbox = m_component->GetBodyBoundingBox();
m_fbox_size = ComputeFBoxSize( /* aDynamic */ true );

View File

@ -87,6 +87,9 @@ DIALOG_ERC::DIALOG_ERC( SCH_EDIT_FRAME* parent ) :
DIALOG_ERC::~DIALOG_ERC()
{
EESCHEMA_SETTINGS* settings = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( settings );
if( settings )
settings->m_Appearance.erc_severities = m_severities;
m_markerTreeModel->DecRef();

View File

@ -321,9 +321,13 @@ void NETLIST_DIALOG::InstallCustomPages()
NETLIST_PAGE_DIALOG* currPage;
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
{
for( size_t i = 0;
i < CUSTOMPANEL_COUNTMAX && i < cfg->m_NetlistPanel.custom_command_titles.size(); i++ )
i < CUSTOMPANEL_COUNTMAX && i < cfg->m_NetlistPanel.custom_command_titles.size();
i++ )
{
// pairs of (title, command) are stored
wxString title = cfg->m_NetlistPanel.custom_command_titles[i];
@ -338,6 +342,7 @@ void NETLIST_DIALOG::InstallCustomPages()
m_PanelNetType[PANELCUSTOMBASE + i] = currPage;
}
}
}

View File

@ -85,7 +85,10 @@ DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC( SCH_EDIT_FRAME* parent )
void DIALOG_PLOT_SCHEMATIC::initDlg()
{
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
{
for( COLOR_SETTINGS* settings : Pgm().GetSettingsManager().GetColorSettingsList() )
{
int idx = m_colorTheme->Append( settings->GetName(), static_cast<void*>( settings ) );
@ -114,26 +117,20 @@ void DIALOG_PLOT_SCHEMATIC::initDlg()
m_HPGLPenSize = cfg->m_PlotPanel.hpgl_pen_size * IU_PER_MM;
// Switch to the last save plot format
switch( static_cast<PLOT_FORMAT>( cfg->m_PlotPanel.format ) )
PLOT_FORMAT fmt = static_cast<PLOT_FORMAT>( cfg->m_PlotPanel.format );
switch( fmt )
{
default:
case PLOT_FORMAT::POST:
m_plotFormatOpt->SetSelection( 0 );
break;
case PLOT_FORMAT::PDF:
m_plotFormatOpt->SetSelection( 1 );
break;
case PLOT_FORMAT::SVG:
m_plotFormatOpt->SetSelection( 2 );
break;
case PLOT_FORMAT::DXF:
m_plotFormatOpt->SetSelection( 3 );
case PLOT_FORMAT::POST: m_plotFormatOpt->SetSelection( 0 ); break;
case PLOT_FORMAT::PDF: m_plotFormatOpt->SetSelection( 1 ); break;
case PLOT_FORMAT::SVG: m_plotFormatOpt->SetSelection( 2 ); break;
case PLOT_FORMAT::DXF: m_plotFormatOpt->SetSelection( 3 ); break;
case PLOT_FORMAT::HPGL: m_plotFormatOpt->SetSelection( 4 ); break;
}
if( fmt == PLOT_FORMAT::DXF || fmt == PLOT_FORMAT::HPGL )
m_plotBackgroundColor->Disable();
break;
case PLOT_FORMAT::HPGL:
m_plotFormatOpt->SetSelection( 4 );
m_plotBackgroundColor->Disable();
break;
}
// Set the default line width (pen width which should be used for
@ -278,7 +275,10 @@ void DIALOG_PLOT_SCHEMATIC::getPlotOptions()
m_HPGLPenSize = m_penWidth.GetValue();
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
{
cfg->m_PlotPanel.background_color = m_plotBackgroundColor->GetValue();
cfg->m_PlotPanel.color = getModeColor();
cfg->m_PlotPanel.color_theme = static_cast<COLOR_SETTINGS*>(
@ -290,6 +290,7 @@ void DIALOG_PLOT_SCHEMATIC::getPlotOptions()
// HPGL Pen Size is stored in mm in config
cfg->m_PlotPanel.hpgl_pen_size = m_HPGLPenSize / IU_PER_MM;
}
SetDefaultLineThickness( m_defaultLineWidth.GetValue() );

View File

@ -59,8 +59,13 @@ DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS( SCH_EDIT_FRAME* aParent, SCH_SHE
// Show/hide columns according to user's preference
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
{
m_shownColumns = cfg->m_Appearance.edit_sheet_visible_columns;
m_grid->ShowHideColumns( m_shownColumns );
}
wxToolTip::Enable( true );
m_stdDialogButtonSizerOK->SetDefault();
@ -93,6 +98,9 @@ DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS( SCH_EDIT_FRAME* aParent, SCH_SHE
DIALOG_SCH_SHEET_PROPS::~DIALOG_SCH_SHEET_PROPS()
{
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxASSERT( cfg );
if( cfg )
cfg->m_Appearance.edit_sheet_visible_columns = m_grid->GetShownColumns();
// Prevents crash bug in wxGrid's d'tor

View File

@ -117,7 +117,6 @@ SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos, SCH_ITEM* aParent ) :
SCH_ITEM( aParent, SCH_COMPONENT_T )
{
Init( aPos );
m_fieldsAutoplaced = FIELDS_AUTOPLACED_NO;
}
@ -136,7 +135,6 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_PART& aPart, LIB_ID aLibId, SCH_SHEET_PATH* sh
part = aPart.Flatten();
part->SetParent();
m_part.reset( part.release() );
m_fieldsAutoplaced = FIELDS_AUTOPLACED_NO;
// Copy fields from the library component
UpdateFields( true, true );

View File

@ -47,6 +47,8 @@ SCH_ITEM::SCH_ITEM( EDA_ITEM* aParent, KICAD_T aType ) :
EDA_ITEM( aParent, aType )
{
m_Layer = LAYER_WIRE; // It's only a default, in fact
m_fieldsAutoplaced = FIELDS_AUTOPLACED_NO;
m_connectivity_dirty = true;
}
@ -55,6 +57,8 @@ SCH_ITEM::SCH_ITEM( const SCH_ITEM& aItem ) :
EDA_ITEM( aItem )
{
m_Layer = aItem.m_Layer;
m_fieldsAutoplaced = aItem.m_fieldsAutoplaced;
m_connectivity_dirty = true;
}

View File

@ -238,6 +238,8 @@ void SIM_PLOT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
wxASSERT( cfg );
if( cfg )
{
EDA_BASE_FRAME::SaveSettings( cfg );
cfg->m_Simulator.plot_panel_width = m_splitterLeftRight->GetSashPosition();
@ -245,6 +247,7 @@ void SIM_PLOT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
cfg->m_Simulator.signal_panel_height = m_splitterSignals->GetSashPosition();
cfg->m_Simulator.cursors_panel_height = m_splitterTuneValues->GetSashPosition();
cfg->m_Simulator.white_background = m_plotUseWhiteBg;
}
}
@ -253,6 +256,8 @@ void SIM_PLOT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
wxASSERT( cfg );
if( cfg )
{
EDA_BASE_FRAME::LoadSettings( cfg );
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
@ -263,6 +268,7 @@ void SIM_PLOT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
m_splitterSignalsSashPosition = cfg->m_Simulator.signal_panel_height;
m_splitterTuneValuesSashPosition = cfg->m_Simulator.cursors_panel_height;
m_plotUseWhiteBg = cfg->m_Simulator.white_background;
}
}
@ -270,7 +276,8 @@ WINDOW_SETTINGS* SIM_PLOT_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
{
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
wxASSERT( cfg );
return &cfg->m_Simulator.window;
return cfg ? &cfg->m_Simulator.window : nullptr;
}

View File

@ -644,14 +644,17 @@ void PCB_EDIT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
cs->SetColorContext( COLOR_CONTEXT::PCB );
cs->Load();
auto cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
PCBNEW_SETTINGS* cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
wxASSERT( cfg );
if( cfg )
{
m_rotationAngle = cfg->m_RotationAngle;
g_DrawDefaultLineThickness = Millimeter2iu( cfg->m_PlotLineWidth );
m_show_microwave_tools = cfg->m_AuiPanels.show_microwave_tools;
m_show_layer_manager_tools = cfg->m_AuiPanels.show_layer_manager;
m_showPageLimits = cfg->m_ShowPageLimits;
}
}
@ -670,11 +673,14 @@ void PCB_EDIT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
auto cfg = dynamic_cast<PCBNEW_SETTINGS*>( aCfg );
wxASSERT( cfg );
if( cfg )
{
cfg->m_RotationAngle = m_rotationAngle;
cfg->m_PlotLineWidth = Iu2Millimeter( g_DrawDefaultLineThickness );
cfg->m_AuiPanels.show_microwave_tools = m_show_microwave_tools;
cfg->m_AuiPanels.show_layer_manager = m_show_layer_manager_tools;
cfg->m_ShowPageLimits = m_showPageLimits;
}
}