From be10de8d28081795eaa76bb5d815c674d27ffe9e Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 28 Feb 2017 12:52:37 +0100 Subject: [PATCH] Eeschema: Fix crash when reading a library if a symbol having aliases generates a parse error after its ALIAS list definition --- eeschema/sch_legacy_plugin.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eeschema/sch_legacy_plugin.cpp b/eeschema/sch_legacy_plugin.cpp index 44b963eea0..687bb85bae 100644 --- a/eeschema/sch_legacy_plugin.cpp +++ b/eeschema/sch_legacy_plugin.cpp @@ -2463,6 +2463,11 @@ LIB_PART* SCH_LEGACY_PLUGIN_CACHE::loadPart( FILE_LINE_READER& aReader ) { // Now all is good, Add the root alias to the cache alias list. m_aliases[ part->GetName() ] = part->GetAlias( part->GetName() ); + + // Add aliases when exist + for( size_t ii = 0; ii < part->GetAliasCount(); ++ii ) + m_aliases[ part->GetAlias( ii )->GetName() ] = part->GetAlias( ii ); + return part.release(); } @@ -2516,7 +2521,6 @@ void SCH_LEGACY_PLUGIN_CACHE::loadAliases( std::unique_ptr< LIB_PART >& aPart, newAlias = alias; checkForDuplicates( newAlias ); aPart->AddAlias( newAlias ); - m_aliases[ newAlias ] = aPart->GetAlias( newAlias ); alias.clear(); parseUnquotedString( alias, aReader, line, &line, true ); }