X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=sigsession.cpp;h=9b9798e0577b65b4b64c0de854a82fb203426539;hp=37c758f776e098d86023bb07c123874ad53b2972;hb=f556bc6a4d1798e59f6d0276cdb0d55b5ffab476;hpb=fe1ed361f1a80300499b94b70291d11ae0579ed1 diff --git a/sigsession.cpp b/sigsession.cpp index 37c758f7..9b9798e0 100644 --- a/sigsession.cpp +++ b/sigsession.cpp @@ -76,21 +76,27 @@ void SigSession::dataFeedIn(const struct sr_dev_inst *sdi, if(!_logic_data) break; - // Add an empty data snapshot - shared_ptr snapshot( - new LogicDataSnapshot()); - _logic_data->push_snapshot(snapshot); - _cur_logic_snapshot = snapshot; - break; } case SR_DF_LOGIC: + assert(packet->payload); - assert(_cur_logic_snapshot); - if(_cur_logic_snapshot) + if(!_cur_logic_snapshot) + { + // Create a new data snapshot + _cur_logic_snapshot = shared_ptr( + new LogicDataSnapshot( + *(sr_datafeed_logic*)packet->payload)); + _logic_data->push_snapshot(_cur_logic_snapshot); + } + else + { + // Append to the existing data snapshot _cur_logic_snapshot->append_payload( *(sr_datafeed_logic*)packet->payload); + } + break; case SR_DF_END: