X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fdecodetrace.cpp;h=a65b4d9771ebc4c04530cf25afcecf4ff69e5c5c;hp=f68ded99edd92f2adec0fa47d5bb53c16cde3b16;hb=b82908abf7353c7401cd67e82325922960d5d546;hpb=0cbadf1c6a80ec37481ae11ee3cb709eeffda3e7 diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index f68ded99..a65b4d97 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -176,8 +176,13 @@ void DecodeTrace::paint_mid(QPainter &p, ViewItemPaintParams &pp) // Iterate through the rows int y = get_visual_y(); - pair sample_range = get_sample_range( - pp.left(), pp.right()); + pair sample_range = get_sample_range(pp.left(), pp.right()); + + // Just because the view says we see a certain sample range it + // doesn't mean we have this many decoded samples, too, so crop + // the range to what has been decoded already + sample_range.second = min((int64_t)sample_range.second, + decode_signal_->get_decoded_sample_count(current_segment_, false)); const vector rows = decode_signal_->visible_rows(); @@ -580,7 +585,7 @@ void DecodeTrace::draw_unresolved_period(QPainter &p, int h, int left, int right if (sample_count == 0) return; - const int64_t samples_decoded = decode_signal_->get_decoded_sample_count(current_segment_); + const int64_t samples_decoded = decode_signal_->get_decoded_sample_count(current_segment_, true); if (sample_count == samples_decoded) return;