@@ -2474,7 +2474,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
24742474 auto an = kt.second ;
24752475 if (an[" id" ].as <int >() == aid)
24762476 {
2477- auto channel = static_cast <OscilloscopeChannel*>(m_session. m_idtable [ an[" channel" ].as <int >()] );
2477+ auto channel = m_session. m_idtable . Lookup <OscilloscopeChannel*>(an[" channel" ].as <int >());
24782478 if (!channel) // don't crash on bad IDs or missing filters
24792479 break ;
24802480 size_t stream = 0 ;
@@ -2487,7 +2487,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
24872487 auto overlays = an[" overlays" ];
24882488 for (auto jt : overlays)
24892489 {
2490- auto filter = static_cast <Filter*>(m_session. m_idtable [ jt.second [" id" ].as <int >()] );
2490+ auto filter = m_session. m_idtable . Lookup <Filter*>(jt.second [" id" ].as <int >());
24912491 stream = 0 ;
24922492 if (jt.second [" stream" ])
24932493 stream = jt.second [" stream" ].as <int >();
@@ -2514,7 +2514,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
25142514 {
25152515 auto an = areas[string (" area" ) + to_string (aid)];
25162516
2517- auto channel = static_cast <OscilloscopeChannel*>(m_session. m_idtable [ an[" channel" ].as <int >()] );
2517+ auto channel = m_session. m_idtable . Lookup <OscilloscopeChannel*>(an[" channel" ].as <int >());
25182518 if (!channel) // don't crash on bad IDs or missing filters
25192519 continue ;
25202520 size_t stream = 0 ;
@@ -2527,7 +2527,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
25272527 auto overlays = an[" overlays" ];
25282528 for (auto jt : overlays)
25292529 {
2530- auto filter = static_cast <Filter*>(m_session. m_idtable [ jt.second [" id" ].as <int >()] );
2530+ auto filter = m_session. m_idtable . Lookup <Filter*>(jt.second [" id" ].as <int >());
25312531 stream = 0 ;
25322532 if (jt.second [" stream" ])
25332533 stream = jt.second [" stream" ].as <int >();
@@ -2549,7 +2549,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
25492549 auto streams = an[" streams" ];
25502550 for (auto jt : streams)
25512551 {
2552- auto chan = static_cast <OscilloscopeChannel*>(m_session. m_idtable [ jt.second [" channel" ].as <int >()] );
2552+ auto chan = m_session. m_idtable . Lookup <OscilloscopeChannel*>(jt.second [" channel" ].as <int >());
25532553 auto stream = jt.second [" stream" ].as <int >();
25542554 auto persist = jt.second [" persistence" ].as <bool >();
25552555 auto ramp = jt.second [" colorRamp" ].as <string>();
@@ -2626,7 +2626,7 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
26262626 }
26272627
26282628 m_measurementsDialog->AddStream (
2629- StreamDescriptor (static_cast <OscilloscopeChannel*>(m_session. m_idtable [ index] ), stream));
2629+ StreamDescriptor (m_session. m_idtable . Lookup <OscilloscopeChannel*>(index), stream));
26302630 }
26312631 }
26322632
@@ -2659,7 +2659,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
26592659 filt = it.second [" filter" ].as <string>();
26602660 }
26612661
2662- auto pd = static_cast <PacketDecoder*>(m_session. m_idtable [id] );
2662+ auto pd = m_session. m_idtable . Lookup <PacketDecoder*>(id );
26632663
26642664 auto dlg = make_shared<ProtocolAnalyzerDialog>(pd, m_session.GetPacketManager (pd), m_session, *this );
26652665 dlg->SetFilterExpression (filt);
@@ -2673,8 +2673,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
26732673 {
26742674 for (auto it : meters)
26752675 {
2676- auto meter = dynamic_cast <SCPIMultimeter*>(
2677- static_cast <Instrument*>(m_session.m_idtable [it.second .as <int >()]));
2676+ auto meter = dynamic_cast <SCPIMultimeter*>(m_session.m_idtable .Lookup <Instrument*>(it.second .as <int >()));
26782677 if (meter)
26792678 {
26802679 auto smeter = dynamic_pointer_cast<SCPIMultimeter>(meter->shared_from_this ());
@@ -2693,8 +2692,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
26932692 {
26942693 for (auto it : generators)
26952694 {
2696- auto gen = dynamic_cast <SCPIFunctionGenerator*>(
2697- static_cast <Instrument*>(m_session.m_idtable [it.second .as <int >()]));
2695+ auto gen = dynamic_cast <SCPIFunctionGenerator*>(m_session.m_idtable .Lookup <Instrument*>(it.second .as <int >()));
26982696
26992697 if (gen)
27002698 {
@@ -2714,8 +2712,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
27142712 {
27152713 for (auto it : psus)
27162714 {
2717- auto psu = dynamic_cast <SCPIPowerSupply*>(
2718- static_cast <Instrument*>(m_session.m_idtable [it.second .as <int >()]));
2715+ auto psu = dynamic_cast <SCPIPowerSupply*>(m_session.m_idtable .Lookup <Instrument*>(it.second .as <int >()));
27192716
27202717 if (psu)
27212718 {
@@ -2735,8 +2732,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
27352732 {
27362733 for (auto it : berts)
27372734 {
2738- auto bert = dynamic_cast <SCPIBERT*>(
2739- static_cast <Instrument*>(m_session.m_idtable [it.second .as <int >()]));
2735+ auto bert = dynamic_cast <SCPIBERT*>(m_session.m_idtable .Lookup <Instrument*>(it.second .as <int >()));
27402736
27412737 if (bert)
27422738 {
@@ -2756,8 +2752,7 @@ bool MainWindow::LoadDialogs(const YAML::Node& node)
27562752 {
27572753 for (auto it : loads)
27582754 {
2759- auto load = dynamic_cast <SCPILoad*>(
2760- static_cast <Instrument*>(m_session.m_idtable [it.second .as <int >()]));
2755+ auto load = dynamic_cast <SCPILoad*>(m_session.m_idtable .Lookup <Instrument*>(it.second .as <int >()));
27612756
27622757 if (load)
27632758 {
0 commit comments