diff --git a/eeschema/dialogs/dialog_sim_model.cpp b/eeschema/dialogs/dialog_sim_model.cpp index d6144852e4..9853e08685 100644 --- a/eeschema/dialogs/dialog_sim_model.cpp +++ b/eeschema/dialogs/dialog_sim_model.cpp @@ -919,15 +919,20 @@ int DIALOG_SIM_MODEL::findSymbolPinRow( const wxString& aSymb template SIM_MODEL& DIALOG_SIM_MODEL::curModel() const { - if( m_useLibraryModelRadioButton->GetValue() - && m_modelNameChoice->GetSelection() != wxNOT_FOUND ) + if( m_useLibraryModelRadioButton->GetValue() ) { - return m_libraryModelsMgr.GetModels().at( m_modelNameChoice->GetSelection() ).get(); + int sel = m_modelNameChoice->GetSelection(); + + if( sel >= 0 && sel < (int) m_modelNameChoice->GetCount() ) + return m_libraryModelsMgr.GetModels().at( m_modelNameChoice->GetSelection() ).get(); } else { - return m_builtinModelsMgr.GetModels().at( static_cast( m_curModelType ) ); + if( (int) m_curModelType < (int) m_builtinModelsMgr.GetModels().size() ) + return m_builtinModelsMgr.GetModels().at( (int) m_curModelType ); } + + return m_builtinModelsMgr.GetModels().at( (int) SIM_MODEL::TYPE::NONE ); }