sim_model: Fix another not handled exception that fully freeze Eeschema.
Can happens with schematics with old sim parameter syntax. Fix also another crash in sim_model.
This commit is contained in:
parent
ce6378fed3
commit
cdcf875ec0
|
@ -492,7 +492,15 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::Create( const SIM_MODEL& aBaseModel, unsig
|
||||||
{
|
{
|
||||||
std::unique_ptr<SIM_MODEL> model = Create( aBaseModel.GetType() );
|
std::unique_ptr<SIM_MODEL> model = Create( aBaseModel.GetType() );
|
||||||
|
|
||||||
model->SetBaseModel( aBaseModel );
|
try
|
||||||
|
{
|
||||||
|
model->SetBaseModel( aBaseModel );
|
||||||
|
}
|
||||||
|
catch( IO_ERROR& err )
|
||||||
|
{
|
||||||
|
DisplayErrorMessage( nullptr, err.What() );
|
||||||
|
}
|
||||||
|
|
||||||
model->ReadDataFields( aSymbolPinCount, static_cast<const std::vector<void>*>( nullptr ) );
|
model->ReadDataFields( aSymbolPinCount, static_cast<const std::vector<void>*>( nullptr ) );
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
@ -510,7 +518,14 @@ std::unique_ptr<SIM_MODEL> SIM_MODEL::Create( const SIM_MODEL& aBaseModel, unsig
|
||||||
|
|
||||||
std::unique_ptr<SIM_MODEL> model = Create( type );
|
std::unique_ptr<SIM_MODEL> model = Create( type );
|
||||||
|
|
||||||
model->SetBaseModel( aBaseModel );
|
try
|
||||||
|
{
|
||||||
|
model->SetBaseModel( aBaseModel );
|
||||||
|
}
|
||||||
|
catch( IO_ERROR& err )
|
||||||
|
{
|
||||||
|
DisplayErrorMessage( nullptr, err.What() );
|
||||||
|
}
|
||||||
model->ReadDataFields( aSymbolPinCount, &aFields );
|
model->ReadDataFields( aSymbolPinCount, &aFields );
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
@ -1306,7 +1321,13 @@ void SIM_MODEL::MigrateSimModel( T_symbol& aSymbol, const PROJECT* aProject )
|
||||||
aSymbol.AddField( paramsField );
|
aSymbol.AddField( paramsField );
|
||||||
|
|
||||||
if( modelFromValueField )
|
if( modelFromValueField )
|
||||||
valueField->SetText( wxT( "${SIM.PARAMS}" ) );
|
{
|
||||||
|
// Get the current Value field, after previous changes.
|
||||||
|
valueField = aSymbol.FindField( wxT( "Value" ) );
|
||||||
|
|
||||||
|
if( valueField )
|
||||||
|
valueField->SetText( wxT( "${SIM.PARAMS}" ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !pinMap.IsEmpty() )
|
if( !pinMap.IsEmpty() )
|
||||||
|
|
Loading…
Reference in New Issue