Fixup memory lifespan of GAL options for the settings preview canvas
The canvas keeps a reference to the settings object, so we can't pass one from the stack because it runs into lifetime issues. Also cleanup some loop-iterator problems. Fixes https://gitlab.com/kicad/code/kicad/issues/6338
This commit is contained in:
parent
7f6be05d9d
commit
aa09418a14
|
@ -79,14 +79,13 @@ PANEL_EESCHEMA_COLOR_SETTINGS::PANEL_EESCHEMA_COLOR_SETTINGS( SCH_BASE_FRAME* aF
|
|||
|
||||
createSwatches();
|
||||
|
||||
KIGFX::GAL_DISPLAY_OPTIONS options;
|
||||
options.ReadConfig( *common_settings, app_settings->m_Window, this );
|
||||
options.m_forceDisplayCursor = false;
|
||||
m_galDisplayOptions.ReadConfig( *common_settings, app_settings->m_Window, this );
|
||||
m_galDisplayOptions.m_forceDisplayCursor = false;
|
||||
|
||||
auto type = static_cast<EDA_DRAW_PANEL_GAL::GAL_TYPE>( app_settings->m_Graphics.canvas_type );
|
||||
|
||||
m_preview = new SCH_PREVIEW_PANEL( this, wxID_ANY, wxDefaultPosition, wxSize( -1, -1 ),
|
||||
options, type );
|
||||
m_galDisplayOptions, type );
|
||||
m_preview->SetStealsFocus( false );
|
||||
m_preview->ShowScrollbars( wxSHOW_SB_NEVER, wxSHOW_SB_NEVER );
|
||||
m_preview->GetGAL()->SetAxesEnabled( false );
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define PANEL_EESCHEMA_COLOR_SETTINGS_H_
|
||||
|
||||
#include <gal/color4d.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
#include <layers_id_colors_and_visibility.h>
|
||||
#include <panel_color_settings.h>
|
||||
|
||||
|
@ -69,6 +70,8 @@ private:
|
|||
KIGFX::WS_PROXY_VIEW_ITEM* m_ws;
|
||||
std::vector<EDA_ITEM*> m_previewItems;
|
||||
|
||||
KIGFX::GAL_DISPLAY_OPTIONS m_galDisplayOptions;
|
||||
|
||||
private:
|
||||
void createPreviewItems();
|
||||
void createSwatches();
|
||||
|
|
|
@ -752,7 +752,7 @@ void CADSTAR_SCH_ARCHIVE_LOADER::loadNets()
|
|||
}
|
||||
|
||||
// Now we can load the wires
|
||||
for( const VECTOR2I pt : wireChain.CPoints() )
|
||||
for( const VECTOR2I& pt : wireChain.CPoints() )
|
||||
{
|
||||
if( firstPt )
|
||||
{
|
||||
|
|
|
@ -915,7 +915,7 @@ bool BOARD_NETLIST_UPDATER::UpdateNetlist( NETLIST& aNetlist )
|
|||
|
||||
if( m_isDryRun )
|
||||
{
|
||||
for( const std::pair<wxString, NETINFO_ITEM*>& addedNet : m_addedNets )
|
||||
for( const std::pair<const wxString, NETINFO_ITEM*>& addedNet : m_addedNets )
|
||||
delete addedNet.second;
|
||||
|
||||
m_addedNets.clear();
|
||||
|
|
Loading…
Reference in New Issue