X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=0056e460b81ad92b2ef075bc43014914bd16ba3e;hp=f5f1e4974b6ea155dcdb923924a05c0fef4077c3;hb=a7336fb2d5df57b2ac28db6a2e38c337463fcdce;hpb=79c4a9c8a28765422075b77b0dca23cd248c4d18 diff --git a/pv/session.cpp b/pv/session.cpp index f5f1e497..0056e460 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -620,6 +620,9 @@ const unordered_set< shared_ptr > Session::signalbases() const #ifdef ENABLE_DECODE bool Session::add_decoder(srd_decoder *const dec) { + if (!dec) + return false; + map > channels; shared_ptr decoder_stack; @@ -962,7 +965,7 @@ void Session::feed_in_logic(shared_ptr logic) // Create a new data segment cur_logic_segment_ = make_shared( - *logic_data_, logic, cur_samplerate_); + *logic_data_, logic->unit_size(), cur_samplerate_); logic_data_->push_segment(cur_logic_segment_); // @todo Putting this here means that only listeners querying @@ -970,11 +973,10 @@ void Session::feed_in_logic(shared_ptr logic) // frame_began is DecoderStack, but in future we need to signal // this after both analog and logic sweeps have begun. frame_began(); - } else { - // Append to the existing data segment - cur_logic_segment_->append_payload(logic); } + cur_logic_segment_->append_payload(logic); + data_received(); }