From ac096fdf99a082a6a0184c82a3c23dbffe88068e Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Mon, 13 Jan 2020 14:52:56 +0000 Subject: [PATCH] Catch exceptions from a failed library load. --- eeschema/class_library.cpp | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/eeschema/class_library.cpp b/eeschema/class_library.cpp index ab76ebada0..34f59d605b 100644 --- a/eeschema/class_library.cpp +++ b/eeschema/class_library.cpp @@ -270,11 +270,17 @@ PART_LIB* PART_LIBS::AddLibrary( const wxString& aFileName ) if( lib ) return lib; - lib = PART_LIB::LoadLibrary( aFileName ); + try + { + lib = PART_LIB::LoadLibrary( aFileName ); + push_back( lib ); - push_back( lib ); - - return lib; + return lib; + } + catch( ... ) + { + return nullptr; + } } @@ -287,14 +293,21 @@ PART_LIB* PART_LIBS::AddLibrary( const wxString& aFileName, PART_LIBS::iterator& if( lib ) return lib; - lib = PART_LIB::LoadLibrary( aFileName ); + try + { + lib = PART_LIB::LoadLibrary( aFileName ); - if( aIterator >= begin() && aIterator < end() ) - insert( aIterator, lib ); - else - push_back( lib ); + if( aIterator >= begin() && aIterator < end() ) + insert( aIterator, lib ); + else + push_back( lib ); - return lib; + return lib; + } + catch( ... ) + { + return nullptr; + } }