diff --git a/eeschema/netlist_exporters/netlist_exporter_base.cpp b/eeschema/netlist_exporters/netlist_exporter_base.cpp index 548d560966..86ac4c4f3c 100644 --- a/eeschema/netlist_exporters/netlist_exporter_base.cpp +++ b/eeschema/netlist_exporters/netlist_exporter_base.cpp @@ -94,9 +94,12 @@ SCH_SYMBOL* NETLIST_EXPORTER_BASE::findNextSymbol( EDA_ITEM* aItem, SCH_SHEET_PA wxCHECK( screen, nullptr ); - LIB_SYMBOL* libSymbol = screen->GetLibSymbols()[ symbol->GetSchSymbolLibraryName() ]; + auto it = screen->GetLibSymbols().find( symbol->GetSchSymbolLibraryName() ); - wxCHECK( libSymbol, nullptr ); + if( it == screen->GetLibSymbols().end() ) + return nullptr; + + LIB_SYMBOL* libSymbol = it->second; // If symbol is a "multi parts per package" type if( libSymbol->GetUnitCount() > 1 ) diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index 0cfa70dc46..802aa9658e 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -816,7 +816,7 @@ void SCH_EDIT_FRAME::HardRedraw() for( SCH_ITEM* item : screen->Items() ) item->ClearCaches(); - for( std::pair& libSymbol : screen->GetLibSymbols() ) + for( const std::pair& libSymbol : screen->GetLibSymbols() ) { wxCHECK2( libSymbol.second, continue ); libSymbol.second->ClearCaches(); @@ -1971,8 +1971,8 @@ void SCH_EDIT_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVars for( SCH_ITEM* item : screen->Items() ) item->ClearCaches(); - for( std::pair& libSymbol : screen->GetLibSymbols() ) - libSymbol.second->ClearCaches(); + for( const auto& [ libItemName, libSymbol ] : screen->GetLibSymbols() ) + libSymbol->ClearCaches(); GetCanvas()->ForceRefresh(); diff --git a/eeschema/sch_plugins/kicad/sch_sexpr_plugin.cpp b/eeschema/sch_plugins/kicad/sch_sexpr_plugin.cpp index 32e509aad8..92d2f0c685 100644 --- a/eeschema/sch_plugins/kicad/sch_sexpr_plugin.cpp +++ b/eeschema/sch_plugins/kicad/sch_sexpr_plugin.cpp @@ -376,8 +376,8 @@ void SCH_SEXPR_PLUGIN::Format( SCH_SHEET* aSheet ) // Save cache library. m_out->Print( 1, "(lib_symbols\n" ); - for( std::pair& libSymbol : screen->GetLibSymbols() ) - SCH_SEXPR_PLUGIN_CACHE::SaveSymbol( libSymbol.second, *m_out, 2, libSymbol.first ); + for( const auto& [ libItemName, libSymbol ] : screen->GetLibSymbols() ) + SCH_SEXPR_PLUGIN_CACHE::SaveSymbol( libSymbol, *m_out, 2, libItemName ); m_out->Print( 1, ")\n\n" ); diff --git a/eeschema/sch_screen.h b/eeschema/sch_screen.h index f72b6a30d6..d73a16cdf0 100644 --- a/eeschema/sch_screen.h +++ b/eeschema/sch_screen.h @@ -478,7 +478,6 @@ public: * * @return The list of unique #LIB_SYMBOL object pointers. */ - std::map& GetLibSymbols() { return m_libSymbols; } const std::map& GetLibSymbols() const { return m_libSymbols; } /**