]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/analogsignal.cpp
Really fix #1125 (and maybe #1139)
[pulseview.git] / pv / views / trace / analogsignal.cpp
index cb8e4a527938bde2dd056d2c563d61e6661fa579..43d1175d3bb466c346dbbf1f1a65657fbd8bf203 100644 (file)
@@ -277,7 +277,7 @@ void AnalogSignal::paint_mid(QPainter &p, ViewItemPaintParams &pp)
                paint_grid(p, y, pp.left(), pp.right());
 
                shared_ptr<pv::data::AnalogSegment> segment = get_analog_segment_to_paint();
-               if (!segment)
+               if (!segment || (segment->get_sample_count() == 0))
                        return;
 
                const double pixels_offset = pp.pixels_offset();
@@ -538,7 +538,7 @@ void AnalogSignal::paint_logic_mid(QPainter &p, ViewItemPaintParams &pp)
        const float low_offset = y + nh - signal_margin - 0.5f;
 
        shared_ptr<pv::data::LogicSegment> segment = get_logic_segment_to_paint();
-       if (!segment)
+       if (!segment || (segment->get_sample_count() == 0))
                return;
 
        double samplerate = segment->samplerate();
@@ -669,7 +669,7 @@ shared_ptr<pv::data::AnalogSegment> AnalogSignal::get_analog_segment_to_paint()
                                (segment_display_mode_ == ShowLastCompleteSegmentOnly)) {
                        try {
                                segment = segments.at(current_segment_);
-                       } catch (out_of_range) {
+                       } catch (out_of_range&) {
                                qDebug() << "Current analog segment out of range for signal" << base_->name() << ":" << current_segment_;
                        }
                }
@@ -693,7 +693,7 @@ shared_ptr<pv::data::LogicSegment> AnalogSignal::get_logic_segment_to_paint() co
                                (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_;
                        }
                }