Catch errors when saving individual symbols

Fixes https://gitlab.com/kicad/code/kicad/issues/11566

(cherry picked from commit f4d4f23876)
This commit is contained in:
Seth Hillbrand 2022-05-06 09:47:06 -07:00
parent 30ecca464d
commit 5f7ac58f95
1 changed files with 27 additions and 19 deletions

View File

@ -225,12 +225,14 @@ bool SYMBOL_LIBRARY_MANAGER::SaveLibrary( const wxString& aLibrary, const wxStri
{
LIB_SYMBOL* newSymbol;
try
{
if( symbol->IsAlias() )
{
std::shared_ptr< LIB_SYMBOL > oldParent = symbol->GetParent().lock();
wxCHECK_MSG( oldParent, false,
wxString::Format( "Derived symbol '%s' found with undefined parent.",
wxString::Format( wxT( "Derived symbol '%s' found with undefined parent." ),
symbol->GetName() ) );
LIB_SYMBOL* libParent = pi->LoadSymbol( aLibrary, oldParent->GetName(),
@ -251,6 +253,12 @@ bool SYMBOL_LIBRARY_MANAGER::SaveLibrary( const wxString& aLibrary, const wxStri
pi->SaveSymbol( aLibrary, new LIB_SYMBOL( *symbol ), &properties );
}
}
catch( ... )
{
res = false;
break;
}
}
}
try