X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Flogicsignal.cpp;h=10a5bd4ae70bb2c1f95503fc8ec2b52c17d4f0d5;hp=99900941918b9b8058fce31b52f68ddd8275ac8b;hb=4bd0ecb8d08b655a4e2a1d60b3166e97b290475c;hpb=558ad6ceb934ab7406d286c1a4ae08da4aba1448 diff --git a/pv/views/trace/logicsignal.cpp b/pv/views/trace/logicsignal.cpp index 99900941..10a5bd4a 100644 --- a/pv/views/trace/logicsignal.cpp +++ b/pv/views/trace/logicsignal.cpp @@ -193,7 +193,7 @@ void LogicSignal::paint_mid(QPainter &p, ViewItemPaintParams &pp) const float low_offset = y + 0.5f; shared_ptr segment = get_logic_segment_to_paint(); - if (!segment) + if (!segment || (segment->get_sample_count() == 0)) return; double samplerate = segment->samplerate(); @@ -204,7 +204,7 @@ void LogicSignal::paint_mid(QPainter &p, ViewItemPaintParams &pp) const double pixels_offset = pp.pixels_offset(); const pv::util::Timestamp& start_time = segment->start_time(); - const int64_t last_sample = segment->get_sample_count() - 1; + const int64_t last_sample = (int64_t)segment->get_sample_count() - 1; const double samples_per_pixel = samplerate * pp.scale(); const double pixels_per_sample = 1 / samples_per_pixel; const pv::util::Timestamp start = samplerate * (pp.offset() - start_time); @@ -362,7 +362,7 @@ shared_ptr LogicSignal::get_logic_segment_to_paint() con (segment_display_mode_ == ShowLastCompleteSegmentOnly)) { try { segment = segments.at(current_segment_); - } catch (out_of_range) { + } catch (out_of_range&) { qDebug() << "Current logic segment out of range for signal" << base_->name() << ":" << current_segment_; } }