Wrap FILE_LINE_READER in try-catch blocks in PCB plugins for CanRead*.
This commit is contained in:
parent
d161602e92
commit
af62e4276b
|
@ -274,11 +274,19 @@ bool PCB_PLUGIN::CanReadBoard( const wxString& aFileName ) const
|
||||||
if( !PLUGIN::CanReadBoard( aFileName ) )
|
if( !PLUGIN::CanReadBoard( aFileName ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
FILE_LINE_READER reader( aFileName );
|
try
|
||||||
|
{
|
||||||
|
FILE_LINE_READER reader( aFileName );
|
||||||
|
PCB_PARSER parser( &reader, nullptr, m_queryUserCallback );
|
||||||
|
|
||||||
PCB_PARSER parser( &reader, nullptr, m_queryUserCallback );
|
return parser.IsValidBoardHeader();
|
||||||
|
}
|
||||||
|
catch( const IO_ERROR& )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return parser.IsValidBoardHeader();
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -415,10 +415,9 @@ bool LEGACY_PLUGIN::CanReadBoard( const wxString& aFileName ) const
|
||||||
if( !PLUGIN::CanReadBoard( aFileName ) )
|
if( !PLUGIN::CanReadBoard( aFileName ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
FILE_LINE_READER tempReader( aFileName );
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
FILE_LINE_READER tempReader( aFileName );
|
||||||
getVersion( &tempReader );
|
getVersion( &tempReader );
|
||||||
}
|
}
|
||||||
catch( const IO_ERROR& )
|
catch( const IO_ERROR& )
|
||||||
|
@ -435,25 +434,32 @@ bool LEGACY_PLUGIN::CanReadFootprint( const wxString& aFileName ) const
|
||||||
if( !PLUGIN::CanReadFootprint( aFileName ) )
|
if( !PLUGIN::CanReadFootprint( aFileName ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
FILE_LINE_READER freader( aFileName );
|
try
|
||||||
WHITESPACE_FILTER_READER reader( freader );
|
|
||||||
|
|
||||||
reader.ReadLine();
|
|
||||||
char* line = reader.Line();
|
|
||||||
|
|
||||||
if( !line )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if( !strncasecmp( line, FOOTPRINT_LIBRARY_HEADER, FOOTPRINT_LIBRARY_HEADER_CNT ) )
|
|
||||||
{
|
{
|
||||||
while( reader.ReadLine() )
|
FILE_LINE_READER freader( aFileName );
|
||||||
|
WHITESPACE_FILTER_READER reader( freader );
|
||||||
|
|
||||||
|
reader.ReadLine();
|
||||||
|
char* line = reader.Line();
|
||||||
|
|
||||||
|
if( !line )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if( !strncasecmp( line, FOOTPRINT_LIBRARY_HEADER, FOOTPRINT_LIBRARY_HEADER_CNT ) )
|
||||||
{
|
{
|
||||||
if( !strncasecmp( line, "$MODULE", strlen( "$MODULE" ) ) )
|
while( reader.ReadLine() )
|
||||||
{
|
{
|
||||||
return true;
|
if( !strncasecmp( line, "$MODULE", strlen( "$MODULE" ) ) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch( const IO_ERROR& )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue