diff --git a/common/dialogs/dialog_edit_library_tables.cpp b/common/dialogs/dialog_edit_library_tables.cpp index b1d5359572..4929cc945f 100644 --- a/common/dialogs/dialog_edit_library_tables.cpp +++ b/common/dialogs/dialog_edit_library_tables.cpp @@ -29,6 +29,7 @@ DIALOG_EDIT_LIBRARY_TABLES::DIALOG_EDIT_LIBRARY_TABLES( wxWindow* aParent, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ), m_GlobalTableChanged( false ), m_ProjectTableChanged( false ), + m_infoBar( nullptr ), m_contentPanel( nullptr ) { // Construction delayed until after panel is installed diff --git a/common/dialogs/panel_plugin_settings.cpp b/common/dialogs/panel_plugin_settings.cpp index 6a6179f7cb..ea45aa3a5b 100644 --- a/common/dialogs/panel_plugin_settings.cpp +++ b/common/dialogs/panel_plugin_settings.cpp @@ -28,7 +28,8 @@ PANEL_PLUGIN_SETTINGS::PANEL_PLUGIN_SETTINGS( wxWindow* aParent ) : - PANEL_PLUGIN_SETTINGS_BASE( aParent ) + PANEL_PLUGIN_SETTINGS_BASE( aParent ), + m_pythonInterpreterValid( false ) { wxFont helpFont = KIUI::GetInfoFont( this ).Italic(); m_stPythonStatus->SetFont( helpFont ); diff --git a/common/tool/embed_tool.cpp b/common/tool/embed_tool.cpp index 48f7e93582..fb86bd1635 100644 --- a/common/tool/embed_tool.cpp +++ b/common/tool/embed_tool.cpp @@ -30,20 +30,21 @@ EMBED_TOOL::EMBED_TOOL( const std::string& aName ) : - TOOL_INTERACTIVE( aName ) + TOOL_INTERACTIVE( aName ), + m_files( nullptr ) { } EMBED_TOOL::EMBED_TOOL() : - TOOL_INTERACTIVE( "common.Embed" ) + TOOL_INTERACTIVE( "common.Embed" ), + m_files( nullptr ) { } bool EMBED_TOOL::Init() { - m_files = getModel<EDA_ITEM>()->GetEmbeddedFiles(); return true; @@ -53,7 +54,6 @@ bool EMBED_TOOL::Init() void EMBED_TOOL::Reset( RESET_REASON aReason ) { m_files = getModel<EDA_ITEM>()->GetEmbeddedFiles(); - } int EMBED_TOOL::AddFile( const TOOL_EVENT& aEvent ) diff --git a/common/widgets/filter_combobox.cpp b/common/widgets/filter_combobox.cpp index 239377128b..ddb8e8a065 100644 --- a/common/widgets/filter_combobox.cpp +++ b/common/widgets/filter_combobox.cpp @@ -388,7 +388,8 @@ void FILTER_COMBOPOPUP::doSetFocus( wxWindow* aWindow ) FILTER_COMBOBOX::FILTER_COMBOBOX( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style ) : - wxComboCtrl( parent, id, wxEmptyString, pos, size, style|wxCB_READONLY|wxTE_PROCESS_ENTER ) + wxComboCtrl( parent, id, wxEmptyString, pos, size, style|wxCB_READONLY|wxTE_PROCESS_ENTER ), + m_filterPopup( nullptr ) { UseAltPopupWindow(); Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( FILTER_COMBOBOX::onKeyDown ), nullptr, this ); diff --git a/eeschema/design_block_tree_model_adapter.cpp b/eeschema/design_block_tree_model_adapter.cpp index 6b93ef68cf..e6d8c88dcb 100644 --- a/eeschema/design_block_tree_model_adapter.cpp +++ b/eeschema/design_block_tree_model_adapter.cpp @@ -46,7 +46,8 @@ DESIGN_BLOCK_TREE_MODEL_ADAPTER::DESIGN_BLOCK_TREE_MODEL_ADAPTER( EDA_BASE_FRAME LIB_TABLE* aLibs ) : LIB_TREE_MODEL_ADAPTER( aParent, wxT( "pinned_design_block_libs" ), Kiface().KifaceSettings() ), - m_libs( (DESIGN_BLOCK_LIB_TABLE*) aLibs ) + m_libs( (DESIGN_BLOCK_LIB_TABLE*) aLibs ), + m_frame( aParent ) { } diff --git a/eeschema/sch_connection.cpp b/eeschema/sch_connection.cpp index 8732cc31b1..b7c50fee77 100644 --- a/eeschema/sch_connection.cpp +++ b/eeschema/sch_connection.cpp @@ -85,7 +85,8 @@ SCH_CONNECTION::SCH_CONNECTION( CONNECTION_GRAPH* aGraph ) : SCH_CONNECTION::SCH_CONNECTION( SCH_CONNECTION& aOther ) : - m_parent( nullptr ) + m_parent( nullptr ), + m_driver( nullptr ) { Reset(); Clone( aOther ); diff --git a/eeschema/widgets/design_block_pane.cpp b/eeschema/widgets/design_block_pane.cpp index 962c8d50af..0dee32a55f 100644 --- a/eeschema/widgets/design_block_pane.cpp +++ b/eeschema/widgets/design_block_pane.cpp @@ -131,7 +131,10 @@ void DESIGN_BLOCK_PANE::RefreshLibs() } -FILEDLG_IMPORT_SHEET_CONTENTS::FILEDLG_IMPORT_SHEET_CONTENTS( EESCHEMA_SETTINGS* aSettings ) +FILEDLG_IMPORT_SHEET_CONTENTS::FILEDLG_IMPORT_SHEET_CONTENTS( EESCHEMA_SETTINGS* aSettings ) : + m_cbRepeatedPlacement( nullptr ), + m_cbPlaceAsSheet( nullptr ), + m_cbKeepAnnotations( nullptr ) { wxASSERT( aSettings ); m_settings = aSettings; diff --git a/pcbnew/dialogs/dialog_create_array.cpp b/pcbnew/dialogs/dialog_create_array.cpp index cbf906f56b..35dbb14107 100644 --- a/pcbnew/dialogs/dialog_create_array.cpp +++ b/pcbnew/dialogs/dialog_create_array.cpp @@ -43,77 +43,43 @@ struct CREATE_ARRAY_DIALOG_ENTRIES * Construct with some sensible defaults. * In future, this could be loaded from config? */ - CREATE_ARRAY_DIALOG_ENTRIES() : - m_OptionsSet( true ), - m_GridNx( 5 ), - m_GridNy( 5 ), - m_GridDx( pcbIUScale.mmToIU( 2.54 ) ), - m_GridDy( pcbIUScale.mmToIU( 2.54 ) ), - m_GridOffsetX( 0 ), - m_GridOffsetY( 0 ), - m_GridStagger( 1 ), - m_GridStaggerRows( true ), - m_GridPositionCentreOnItems( true ), - m_GridNumberingAxis( 0 ), // h then v - m_GridNumReverseAlt( false ), - m_GridNumStartSet( 1 ), // use specified start - m_Grid2dArrayNumbering( 0 ), // linear numbering - m_GridPrimaryAxisScheme( 0 ), // numeric - m_GridSecondaryAxisScheme( 0 ), // numeric - m_GridPrimaryNumOffset( wxT( "1" ) ), // numeric - m_GridSecondaryNumOffset( wxT( "1" ) ), // numeric - m_GridPrimaryAxisStep( 1 ), - m_GridSecondaryAxisStep( 1 ), - m_CircCentreX( 0 ), - m_CircCentreY( 0 ), - m_CircAngle( ANGLE_90 ), - m_CircCount( 4 ), - m_CircNumStartSet( 1 ), // use specified start - m_GridCircNumScheme( 0 ), - m_CircNumberingOffset( wxT( "1" ) ), - m_CircNumberingStep( 1 ), - m_CircRotatationStep( false ), - m_ArrayTypeTab( 0 ), // start on grid view - m_FootprintKeepAnnotations( false ), - m_FootprintReannotate( true ) // Assign unique by default - { - } + CREATE_ARRAY_DIALOG_ENTRIES() {} - bool m_OptionsSet; + bool m_OptionsSet = true; - long m_GridNx; - long m_GridNy; - long m_GridDx; - long m_GridDy; - long m_GridOffsetX; - long m_GridOffsetY; - long m_GridStagger; - bool m_GridStaggerRows; - bool m_GridPositionCentreOnItems; - long m_GridNumberingAxis; - bool m_GridNumReverseAlt; - long m_GridNumStartSet; - long m_Grid2dArrayNumbering; - long m_GridPrimaryAxisScheme; - long m_GridSecondaryAxisScheme; - wxString m_GridPrimaryNumOffset; - wxString m_GridSecondaryNumOffset; - long m_GridPrimaryAxisStep; - long m_GridSecondaryAxisStep; + long m_GridNx = 5; + long m_GridNy = 5; + long m_GridDx = pcbIUScale.mmToIU( 2.54 ); + long m_GridDy = pcbIUScale.mmToIU( 2.54 ); + long m_GridOffsetX = 0; + long m_GridOffsetY = 0; + long m_GridStagger = 1; + bool m_GridStaggerRows = true; + bool m_GridPositionCentreOnItems = true; + long m_GridNumberingAxis = 0; // h then v + bool m_GridNumReverseAlt = false; + long m_GridNumStartSet = 1; // use specified start + long m_Grid2dArrayNumbering = 0; // linear numbering + long m_GridPrimaryAxisScheme = 0; // numeric + long m_GridSecondaryAxisScheme = 0; // numeric + wxString m_GridPrimaryNumOffset = wxT( "1" ); // numeric + wxString m_GridSecondaryNumOffset = wxT( "1" ); // numeric + long m_GridPrimaryAxisStep = 1; + long m_GridSecondaryAxisStep = 1; - long m_CircCentreX; - long m_CircCentreY; - EDA_ANGLE m_CircAngle; - long m_CircCount; - bool m_CircFullCircle; - long m_CircNumStartSet; - long m_GridCircNumScheme; - wxString m_CircNumberingOffset; - long m_CircNumberingStep; - bool m_CircRotatationStep; - long m_ArrayTypeTab; - bool m_FootprintKeepAnnotations; - bool m_FootprintReannotate; + long m_CircCentreX = 0; + long m_CircCentreY = 0; + EDA_ANGLE m_CircAngle = ANGLE_90; + long m_CircCount = 4; + bool m_CircFullCircle = 0; + long m_CircNumStartSet = 1; // use specified start + long m_GridCircNumScheme = 0; + wxString m_CircNumberingOffset = wxT("1"); + long m_CircNumberingStep = 1; + bool m_CircRotatationStep = false; + long m_ArrayTypeTab = 0; // start on grid view + bool m_FootprintKeepAnnotations = false; + bool m_FootprintReannotate = true; // Assign unique by default }; // Persistent options settings diff --git a/pcbnew/dialogs/dialog_gendrill.cpp b/pcbnew/dialogs/dialog_gendrill.cpp index 1e8cc6cbe9..afe541a9aa 100644 --- a/pcbnew/dialogs/dialog_gendrill.cpp +++ b/pcbnew/dialogs/dialog_gendrill.cpp @@ -104,20 +104,20 @@ DIALOG_GENDRILL::DIALOG_GENDRILL( PCB_EDIT_FRAME* aPcbEditFrame, JOB_EXPORT_PCB_ m_buttonsSizer->Layout(); SetReturnCode( 1 ); - + initDialog(); GetSizer()->SetSizeHints( this ); } // Static members of DIALOG_GENDRILL -int DIALOG_GENDRILL::m_UnitDrillIsInch = false; // Only for Excellon format -int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT; -bool DIALOG_GENDRILL::m_MinimalHeader = false; // Only for Excellon format -bool DIALOG_GENDRILL::m_Mirror = false; // Only for Excellon format -bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; // Only for Excellon format -bool DIALOG_GENDRILL::m_GenerateMap = false; -int DIALOG_GENDRILL::m_mapFileType = 4; // The last choice in m_Choice_Drill_Map -int DIALOG_GENDRILL::m_drillFileType = 0; +int DIALOG_GENDRILL::m_UnitDrillIsInch = false; // Only for Excellon format +int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT; +bool DIALOG_GENDRILL::m_MinimalHeader = false; // Only for Excellon format +bool DIALOG_GENDRILL::m_Mirror = false; // Only for Excellon format +bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; // Only for Excellon format +bool DIALOG_GENDRILL::m_GenerateMap = false; +int DIALOG_GENDRILL::m_mapFileType = 4; // The last choice in m_Choice_Drill_Map +int DIALOG_GENDRILL::m_drillFileType = 0; bool DIALOG_GENDRILL::m_UseRouteModeForOvalHoles = true; // Use G00 route mode to "drill" oval holes DIALOG_GENDRILL::~DIALOG_GENDRILL() diff --git a/pcbnew/dialogs/dialog_rule_area_properties.cpp b/pcbnew/dialogs/dialog_rule_area_properties.cpp index 98737adef1..ea98941976 100644 --- a/pcbnew/dialogs/dialog_rule_area_properties.cpp +++ b/pcbnew/dialogs/dialog_rule_area_properties.cpp @@ -103,10 +103,16 @@ DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aPar CONVERT_SETTINGS* aConvertSettings, BOARD* aBoard ) : DIALOG_RULE_AREA_PROPERTIES_BASE( aParent ), - m_board( aBoard ), m_outlineHatchPitch( aParent, m_stBorderHatchPitchText, - m_outlineHatchPitchCtrl, m_outlineHatchUnits ), - m_convertSettings( aConvertSettings ), m_rbCenterline( nullptr ), - m_rbBoundingHull( nullptr ), m_cbDeleteOriginals( nullptr ), + m_board( aBoard ), + m_outlineHatchPitch( aParent, m_stBorderHatchPitchText, m_outlineHatchPitchCtrl, m_outlineHatchUnits ), + m_convertSettings( aConvertSettings ), + m_rbCenterline( nullptr ), + m_rbBoundingHull( nullptr ), + m_gapLabel( nullptr ), + m_gapCtrl( nullptr ), + m_gapUnits( nullptr ), + m_gap( nullptr ), + m_cbDeleteOriginals( nullptr ), m_notFoundPlacementSource( false ), m_originalPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME ), m_lastPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME ) diff --git a/pcbnew/dialogs/dialog_set_offset.cpp b/pcbnew/dialogs/dialog_set_offset.cpp index 9367cef5c5..cb433d1b32 100644 --- a/pcbnew/dialogs/dialog_set_offset.cpp +++ b/pcbnew/dialogs/dialog_set_offset.cpp @@ -39,7 +39,11 @@ DIALOG_SET_OFFSET::DIALOG_SET_OFFSET( PCB_BASE_FRAME& aParent, VECTOR2I& aOffset DIALOG_SET_OFFSET_BASE( &aParent ), m_clearToZero( aClearToZero ), m_originalOffset( aOffset ), m_updatedOffset( aOffset ), m_xOffset( &aParent, m_xLabel, m_xEntry, m_xUnit ), - m_yOffset( &aParent, m_yLabel, m_yEntry, m_yUnit ) + m_yOffset( &aParent, m_yLabel, m_yEntry, m_yUnit ), + m_stateX( 0.0 ), + m_stateY( 0.0 ), + m_stateRadius( 0.0 ), + m_stateTheta( ANGLE_0 ) { m_xOffset.SetCoordType( ORIGIN_TRANSFORMS::REL_X_COORD ); m_yOffset.SetCoordType( ORIGIN_TRANSFORMS::REL_Y_COORD ); diff --git a/pcbnew/exporters/exporter_vrml.cpp b/pcbnew/exporters/exporter_vrml.cpp index 66d793359d..015a9fbdac 100644 --- a/pcbnew/exporters/exporter_vrml.cpp +++ b/pcbnew/exporters/exporter_vrml.cpp @@ -106,6 +106,8 @@ EXPORTER_PCB_VRML::EXPORTER_PCB_VRML( BOARD* aBoard ) : m_precision = 6; m_WorldScale = 1.0; m_Cache3Dmodels = nullptr; + m_includeDNP = false; + m_includeUnspecified = false; m_UseInlineModelsInBrdfile = false; m_UseRelPathIn3DModelFilename = false; m_BoardToVrmlScale = pcbIUScale.MM_PER_IU; diff --git a/pcbnew/pcb_io/altium/altium_parser_pcb.cpp b/pcbnew/pcb_io/altium/altium_parser_pcb.cpp index bb30c6b470..3d1edcdadc 100644 --- a/pcbnew/pcb_io/altium/altium_parser_pcb.cpp +++ b/pcbnew/pcb_io/altium/altium_parser_pcb.cpp @@ -520,19 +520,6 @@ APOLYGON6::APOLYGON6( ALTIUM_BINARY_PARSER& aReader ) ARULE6::ARULE6( ALTIUM_BINARY_PARSER& aReader ) { - // Initialize all variables and make Coverity happy - minLimit = 0; - maxLimit = 0; - preferredWidth = 0; - soldermaskExpansion = 0; - pastemaskExpansion = 0; - clearanceGap = 0; - planeclearanceClearance = 0; - polygonconnectAirgapwidth = 0; - polygonconnectReliefconductorwidth = 0; - polygonconnectReliefentries = 0; - polygonconnectStyle = ALTIUM_CONNECT_STYLE::UNKNOWN; - aReader.Skip( 2 ); std::map<wxString, wxString> props = aReader.ReadProperties(); diff --git a/pcbnew/pcb_io/altium/altium_parser_pcb.h b/pcbnew/pcb_io/altium/altium_parser_pcb.h index d78fa5e098..215e8bf28b 100644 --- a/pcbnew/pcb_io/altium/altium_parser_pcb.h +++ b/pcbnew/pcb_io/altium/altium_parser_pcb.h @@ -498,7 +498,7 @@ struct APOLYGON6 struct ARULE6 { wxString name; - int priority; + int priority = 0; ALTIUM_RULE_KIND kind; @@ -507,38 +507,38 @@ struct ARULE6 // ALTIUM_RULE_KIND::CLEARANCE // ALTIUM_RULE_KIND::HOLE_TO_HOLE_CLEARANCE - int clearanceGap; + int clearanceGap = 0; // ALTIUM_RULE_KIND::WIDTH // ALTIUM_RULE_KIND::HOLE_SIZE - int minLimit; - int maxLimit; + int minLimit = 0; + int maxLimit = 0; // ALTIUM_RULE_KIND::WIDTH - int preferredWidth; + int preferredWidth = 0; // ALTIUM_RULE_KIND::ROUTING_VIAS - int width; - int minWidth; - int maxWidth; - int holeWidth; - int minHoleWidth; - int maxHoleWidth; + int width = 0; + int minWidth = 0; + int maxWidth = 0; + int holeWidth = 0; + int minHoleWidth = 0; + int maxHoleWidth = 0; // ALTIUM_RULE_KIND::PLANE_CLEARANCE - int planeclearanceClearance; + int planeclearanceClearance = 0; // ALTIUM_RULE_KIND::SOLDER_MASK_EXPANSION - int soldermaskExpansion; + int soldermaskExpansion = 0; // ALTIUM_RULE_KIND::PASTE_MASK_EXPANSION - int pastemaskExpansion; + int pastemaskExpansion = 0; // ALTIUM_RULE_KIND::POLYGON_CONNECT - int32_t polygonconnectAirgapwidth; - int32_t polygonconnectReliefconductorwidth; - int polygonconnectReliefentries; - ALTIUM_CONNECT_STYLE polygonconnectStyle; + int32_t polygonconnectAirgapwidth = 0; + int32_t polygonconnectReliefconductorwidth = 0; + int polygonconnectReliefentries = 0; + ALTIUM_CONNECT_STYLE polygonconnectStyle = ALTIUM_CONNECT_STYLE::UNKNOWN; // TODO: implement different types of rules we need to parse @@ -592,39 +592,39 @@ struct AARC6 struct ACOMPONENTBODY6 { - uint16_t component; + uint16_t component = 0; wxString body_name; - int kind; - int subpolyindex; - int unionindex; - int arc_resolution; - bool is_shape_based; - int cavity_height; - int standoff_height; - int overall_height; - int body_projection; - int body_color_3d; - int body_opacity_3d; + int kind = 0; + int subpolyindex = 0; + int unionindex = 0; + int arc_resolution = 0;; + bool is_shape_based = false; + int cavity_height = 0; + int standoff_height = 0; + int overall_height = 0; + int body_projection = 0; + int body_color_3d = 0; + int body_opacity_3d = 0; wxString identifier; wxString texture; - int texture_center_x; - int texture_center_y; - int texture_size_x; - int texture_size_y; - int texture_rotation; + int texture_center_x = 0; + int texture_center_y = 0; + int texture_size_x = 0; + int texture_size_y = 0; + int texture_rotation = 0; wxString modelId; wxString modelChecksum; - bool modelIsEmbedded; + bool modelIsEmbedded = false; wxString modelName; - int modelType; - int modelSource; - int modelSnapCount; + int modelType = 0; + int modelSource = 0; + int modelSnapCount = 0; VECTOR3D modelPosition; VECTOR3D modelRotation; - double rotation; + double rotation = 0.0; explicit ACOMPONENTBODY6( ALTIUM_BINARY_PARSER& aReader ); }; @@ -686,28 +686,28 @@ struct APAD6 struct AVIA6 { - bool is_locked; - bool is_tent_top; - bool is_tent_bottom; - bool is_test_fab_top; - bool is_test_fab_bottom; + bool is_locked = false; + bool is_tent_top = false; + bool is_tent_bottom = false; + bool is_test_fab_top = false; + bool is_test_fab_bottom = false; - uint16_t net; + uint16_t net = 0; VECTOR2I position; - uint32_t pos_tolerance; // 2147483640 is N/A - uint32_t neg_tolerance; // 2147483640 is N/A - uint32_t diameter; - uint32_t holesize; + uint32_t pos_tolerance = 2147483640; // 2147483640 is N/A + uint32_t neg_tolerance = 2147483640; // 2147483640 is N/A + uint32_t diameter = 0; + uint32_t holesize = 0; - int32_t thermal_relief_airgap; - uint32_t thermal_relief_conductorcount; - uint32_t thermal_relief_conductorwidth; + int32_t thermal_relief_airgap = 0; + uint32_t thermal_relief_conductorcount = 0; + uint32_t thermal_relief_conductorwidth = 0; - int32_t soldermask_expansion_front; - int32_t soldermask_expansion_back; - bool soldermask_expansion_manual; - bool soldermask_expansion_linked; + int32_t soldermask_expansion_front = 0; + int32_t soldermask_expansion_back = 0; + bool soldermask_expansion_manual = false; + bool soldermask_expansion_linked = false; ALTIUM_LAYER layer_start; ALTIUM_LAYER layer_end; @@ -752,36 +752,36 @@ struct ATEXT6 ALTIUM_LAYER layer; - uint16_t component; + uint16_t component = 0; VECTOR2I position; - uint32_t height; - double rotation; - uint32_t strokewidth; + uint32_t height = 0; + double rotation = 0.0; + uint32_t strokewidth = 0; STROKE_FONT_TYPE strokefonttype; - bool isBold; - bool isItalic; - bool isMirrored; - bool isInverted; - bool isInvertedRect; - bool isFrame; - bool isOffsetBorder; - bool isJustificationValid; + bool isBold = false; + bool isItalic = false; + bool isMirrored = false; + bool isInverted = false; + bool isInvertedRect = false; + bool isFrame = false; + bool isOffsetBorder = false; + bool isJustificationValid = false; - uint32_t margin_border_width; - uint32_t textbox_rect_width; - uint32_t textbox_rect_height; - uint32_t text_offset_width; + uint32_t margin_border_width = 0; + uint32_t textbox_rect_width = 0; + uint32_t textbox_rect_height = 0; + uint32_t text_offset_width = 0; // Justification only applies when there is a text box size specified // Then, the text is justified within the box ALTIUM_TEXT_POSITION textbox_rect_justification; - uint32_t widestring_index; + uint32_t widestring_index = 0; - bool isComment; - bool isDesignator; + bool isComment = false; + bool isDesignator = false; ALTIUM_TEXT_TYPE fonttype; wxString fontname; diff --git a/pcbnew/pcb_io/odbpp/odb_entity.h b/pcbnew/pcb_io/odbpp/odb_entity.h index b306aacee3..83e9ba68be 100644 --- a/pcbnew/pcb_io/odbpp/odb_entity.h +++ b/pcbnew/pcb_io/odbpp/odb_entity.h @@ -85,8 +85,8 @@ public: uint32_t m_rowNumber; wxString m_layerName; - ODB_CONTEXT m_context; - ODB_TYPE m_type; + ODB_CONTEXT m_context = ODB_CONTEXT::BOARD; + ODB_TYPE m_type = ODB_TYPE::UNDEFINED; ODB_POLARITY m_polarity = ODB_POLARITY::POSITIVE; MATRIX_LAYER( uint32_t aRow, const wxString& aLayerName ) : diff --git a/pcbnew/pcb_io/odbpp/odb_feature.h b/pcbnew/pcb_io/odbpp/odb_feature.h index 1ef6b57c0e..598be78cea 100644 --- a/pcbnew/pcb_io/odbpp/odb_feature.h +++ b/pcbnew/pcb_io/odbpp/odb_feature.h @@ -336,7 +336,7 @@ public: LINE_TYPE m_type = LINE_TYPE::SEGMENT; VECTOR2I m_center; - ODB_DIRECTION m_direction; + ODB_DIRECTION m_direction = ODB_DIRECTION::CW; }; void AddPolygonHoles( const SHAPE_POLY_SET::POLYGON& aPolygon ); diff --git a/pcbnew/router/pns_logger.h b/pcbnew/router/pns_logger.h index ed630f9869..9e3e5eaae1 100644 --- a/pcbnew/router/pns_logger.h +++ b/pcbnew/router/pns_logger.h @@ -61,7 +61,9 @@ public: SIZES_SETTINGS sizes; int layer; - EVENT_ENTRY() {} + EVENT_ENTRY() : layer( 0 ) + { + } EVENT_ENTRY( const EVENT_ENTRY& aE ) : p( aE.p ), type( aE.type ), uuids( aE.uuids ), sizes( aE.sizes ), layer( aE.layer ) diff --git a/pcbnew/router/pns_multi_dragger.h b/pcbnew/router/pns_multi_dragger.h index dca9c9aa54..70f1f80596 100644 --- a/pcbnew/router/pns_multi_dragger.h +++ b/pcbnew/router/pns_multi_dragger.h @@ -108,7 +108,7 @@ public: PNS::DRAG_MODE Mode() const override; // Use case: we are dragging multiple tracks. The router erases a few of them, adds a few new ones. For the ease of use, it would be good for the tracks the be still selected when -// the drag operation is completed. This method returns a set of the 'leader' (segments/arcs that have been selected for multi-fragging) +// the drag operation is completed. This method returns a set of the 'leader' (segments/arcs that have been selected for multi-fragging) virtual std::vector<PNS::ITEM*> GetLastCommittedLeaderSegments() override { return m_leaderSegments; }; virtual bool GetForceMarkObstaclesMode( bool* aDragStatus ) const override @@ -117,11 +117,11 @@ public: return false; } - + private: - + struct MDRAG_LINE @@ -130,27 +130,28 @@ private: ITEM* leaderItem = nullptr; std::vector<PNS::ITEM*> originalLeaders; - bool isStrict = false; bool isMidSeg = false; bool isCorner = false; bool isDraggable = false; int leaderSegIndex = -1; - bool cornerIsLast = false; + bool cornerIsLast = false; PNS::LINE originalLine; // complete line (in a bundle) to drag PNS::LINE preDragLine; // complete line (in a bundle) to drag PNS::LINE draggedLine; // result of the drag calculation PNS::LINE preShoveLine; // result of the drag calculation - bool dragOK = false; - bool isPrimaryLine = false; // when true, it's the "leader"/"primary one" - the one the cursor is attached to - bool clipDone = false; - int offset; // distance between this line and the primary one (only applicable if the respective end segments are parallel) + + bool dragOK = false; + bool isPrimaryLine = false; // when true, it's the "leader"/"primary one" - the one the cursor is attached to + bool clipDone = false; + int offset = 0; // distance between this line and the primary one (only applicable if the respective end segments are parallel) SEG midSeg; // VECTOR2I dragAnchor; - int dragDist; - int cornerDistance, leaderSegDistance; + int dragDist = 0; + int cornerDistance = 0; + int leaderSegDistance = 0; }; bool multidragMarkObstacles ( std::vector<MDRAG_LINE>& aCompletedLines ); @@ -174,7 +175,7 @@ private: VECTOR2I m_dragStartPoint; SEG m_guide; std::unique_ptr<SHOVE> m_shove; - + }; } diff --git a/pcbnew/router/pns_shove.cpp b/pcbnew/router/pns_shove.cpp index 324d2a40b0..2e030137e4 100644 --- a/pcbnew/router/pns_shove.cpp +++ b/pcbnew/router/pns_shove.cpp @@ -195,6 +195,7 @@ SHOVE::SHOVE( NODE* aWorld, ROUTER* aRouter ) : m_draggedVia = nullptr; m_iter = 0; m_multiLineMode = false; + m_headsModified = false; m_restrictSpringbackTagId = 0; m_springbackDoNotTouchNode = nullptr; m_defaultPolicy = SHP_SHOVE; diff --git a/pcbnew/router/pns_walkaround.h b/pcbnew/router/pns_walkaround.h index 5e619b342b..3ff1d8bb1a 100644 --- a/pcbnew/router/pns_walkaround.h +++ b/pcbnew/router/pns_walkaround.h @@ -36,7 +36,7 @@ namespace PNS { class WALKAROUND : public ALGO_BASE { static constexpr int MaxWalkPolicies = 3; - + public: WALKAROUND( NODE* aWorld, ROUTER* aRouter ) : ALGO_BASE ( aRouter ), @@ -47,6 +47,7 @@ public: // Initialize other members, to avoid uninitialized variables. m_iteration = 0; + m_initialLength = 0.0; m_forceCw = false; m_forceLongerPath = false; m_lengthLimitOn = true; @@ -133,7 +134,7 @@ public: } void SetAllowedPolicies( std::vector<WALK_POLICY> aPolicies); - + private: void start( const LINE& aInitialPath ); bool singleStep(); diff --git a/pcbnew/specctra_import_export/specctra.cpp b/pcbnew/specctra_import_export/specctra.cpp index df1d267d56..003441ef44 100644 --- a/pcbnew/specctra_import_export/specctra.cpp +++ b/pcbnew/specctra_import_export/specctra.cpp @@ -156,6 +156,11 @@ void SPECCTRA_DB::readTIME( time_t* time_stamp ) struct tm mytime; + mytime.tm_hour = 0; + mytime.tm_min = 0; + mytime.tm_sec = 0; + mytime.tm_isdst = 0; // useless param here. + static const char time_toks[] = "<month> <day> <hour> : <minute> : <second> <year> or <month> <day> <hour>:<minute>:<second> <year>"; static const char* months[] = { // index 0 = Jan @@ -236,7 +241,6 @@ void SPECCTRA_DB::readTIME( time_t* time_stamp ) Expecting( time_toks ); mytime.tm_year = atoi( CurText() ) - 1900; - mytime.tm_isdst = 0; // useless param here. *time_stamp = mktime( &mytime ); } diff --git a/pcbnew/tools/array_tool.cpp b/pcbnew/tools/array_tool.cpp index 4ac61c92b7..237bd60cd7 100644 --- a/pcbnew/tools/array_tool.cpp +++ b/pcbnew/tools/array_tool.cpp @@ -48,7 +48,8 @@ static void TransformItem( const ARRAY_OPTIONS& aArrOpts, int aIndex, BOARD_ITEM } -ARRAY_TOOL::ARRAY_TOOL() : PCB_TOOL_BASE( "pcbnew.Array" ) +ARRAY_TOOL::ARRAY_TOOL() : PCB_TOOL_BASE( "pcbnew.Array" ), + m_dialog( nullptr ) { }