From c464c5b87bb2e705d8012af3328aed21a8b9abef Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Mon, 3 Oct 2022 22:14:14 +0200 Subject: [PATCH] Sim: cleanup: use unique_ptr for PARAM::value --- .../netlist_exporter_spice.cpp | 36 +++++++------------ eeschema/sim/sim_model.h | 2 +- 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/eeschema/netlist_exporters/netlist_exporter_spice.cpp b/eeschema/netlist_exporters/netlist_exporter_spice.cpp index 30d11e9577..c3ff9fe655 100644 --- a/eeschema/netlist_exporters/netlist_exporter_spice.cpp +++ b/eeschema/netlist_exporters/netlist_exporter_spice.cpp @@ -376,28 +376,22 @@ bool NETLIST_EXPORTER_SPICE::ReadSchematicAndLibraries( unsigned aNetlistOptions if( mparam ) static_cast( kparams.m_waveform ) - ->m_ton = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 1 ) ); + ->m_ton = static_cast( mparam->value.get() )->Get() + .value_or( 1 ); mparam = spiceItem.model->FindParam( "toff" ); if( mparam ) static_cast( kparams.m_waveform ) - ->m_toff = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 1 ) ); + ->m_toff = static_cast( mparam->value.get() )->Get() + .value_or( 1 ); mparam = spiceItem.model->FindParam( "delay" ); if( mparam ) static_cast( kparams.m_waveform ) - ->m_delay = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 0 ) ); + ->m_delay = static_cast( mparam->value.get() )->Get() + .value_or( 0 ); kpin->writeSpiceDriver( &modelData, modelName, *kmodel, kparams ); break; @@ -411,28 +405,22 @@ bool NETLIST_EXPORTER_SPICE::ReadSchematicAndLibraries( unsigned aNetlistOptions if( mparam ) static_cast( kparams.m_waveform ) - ->m_bitrate = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 1 ) ); + ->m_bitrate = static_cast( mparam->value.get() )->Get() + .value_or( 0 ); mparam = spiceItem.model->FindParam( "bits" ); if( mparam ) static_cast( kparams.m_waveform ) - ->m_bits = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 1 ) ); + ->m_bits = static_cast( mparam->value.get() )->Get() + .value_or( 0 ); mparam = spiceItem.model->FindParam( "delay" ); if( mparam ) static_cast( kparams.m_waveform ) - ->m_delay = static_cast( - std::dynamic_pointer_cast( mparam->value ) - ->Get() - .value_or( 0 ) ); + ->m_delay = static_cast( mparam->value.get() )->Get() + .value_or( 0 ); kpin->writeSpiceDriver( &modelData, modelName, *kmodel, kparams ); break; diff --git a/eeschema/sim/sim_model.h b/eeschema/sim/sim_model.h index c63a174fc3..4b6685a50a 100644 --- a/eeschema/sim/sim_model.h +++ b/eeschema/sim/sim_model.h @@ -422,7 +422,7 @@ public: } }; - std::shared_ptr value; + std::unique_ptr value; const INFO& info; bool isOtherVariant = false; // Legacy.