X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=a61224048b018701cad13b891db4baf00a50a8b7;hp=e1a1f010cf065dcad630f391161f819b5f494f0e;hb=0aa57689a8abc7eb313de50774b8d0cf271bc61f;hpb=73a25a6e488f1813c1cd12da085a16e4f91ed4da diff --git a/pv/session.cpp b/pv/session.cpp index e1a1f010..a6122404 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -417,11 +417,6 @@ void Session::update_signals() if (iter != prev_sigs.end()) { // Copy the signal from the old set to the new signal = *iter; - auto logic_signal = dynamic_pointer_cast< - view::LogicSignal>(signal); - if (logic_signal) - logic_signal->set_logic_data( - logic_data_); } else { // Create a new signal signalbase = shared_ptr( @@ -429,20 +424,21 @@ void Session::update_signals() switch(channel->type()->id()) { case SR_CHANNEL_LOGIC: + signalbase->set_data(logic_data_); signal = shared_ptr( new view::LogicSignal(*this, - device_, signalbase, logic_data_)); + device_, signalbase)); all_signal_data_.insert(logic_data_); signalbases_.insert(signalbase); break; case SR_CHANNEL_ANALOG: { - shared_ptr data( - new data::Analog()); + shared_ptr data(new data::Analog()); + signalbase->set_data(data); signal = shared_ptr( new view::AnalogSignal( - *this, signalbase, data)); + *this, signalbase)); all_signal_data_.insert(data); signalbases_.insert(signalbase); break; @@ -462,7 +458,7 @@ void Session::update_signals() signals_changed(); } -shared_ptr Session::signal_from_channel( +shared_ptr Session::signalbase_from_channel( shared_ptr channel) const { for (shared_ptr sig : signalbases_) { @@ -633,12 +629,10 @@ void Session::feed_in_analog(shared_ptr analog) cur_analog_segments_[channel] = segment; // Find the analog data associated with the channel - shared_ptr sig = - dynamic_pointer_cast( - signal_from_channel(channel)); - assert(sig); + shared_ptr base = signalbase_from_channel(channel); + assert(base); - shared_ptr data(sig->analog_data()); + shared_ptr data(base->analog_data()); assert(data); // Push the segment into the analog data.