From b06727d2959e22cafe3487a23eaf60c12c0cba06 Mon Sep 17 00:00:00 2001 From: lucas <lucas.gerads@aixcon.de> Date: Sat, 11 Jan 2025 11:03:03 -0500 Subject: [PATCH] Eeschema sim dialog: Fix kicad crash when spice model corrupted --- eeschema/dialogs/dialog_sim_model.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/eeschema/dialogs/dialog_sim_model.cpp b/eeschema/dialogs/dialog_sim_model.cpp index fa85fa58f9..1abf19757f 100644 --- a/eeschema/dialogs/dialog_sim_model.cpp +++ b/eeschema/dialogs/dialog_sim_model.cpp @@ -845,10 +845,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a m_modelListBoxEntryToLibraryIdx.clear(); wxArrayString modelNames; + bool modelNameExists = false; for( const auto& [name, model] : library()->GetModels() ) { modelNames.Add( name ); m_modelListBoxEntryToLibraryIdx[name] = m_modelListBoxEntryToLibraryIdx.size(); + if( name == modelName ) + modelNameExists = true; } modelNames.Sort(); @@ -856,6 +859,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a m_modelListBox->Clear(); m_modelListBox->Append( modelNames ); + if( !modelNameExists ) + { + m_infoBar->ShowMessage( + wxString::Format( _( "No model named '%s' in '%s'." ), modelName, aLibraryPath ) ); + return false; + } + if( isIbisLoaded() ) { wxArrayString emptyArray;