]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.cpp
DecodeSignal: Don't assume channels always have logic data
[pulseview.git] / pv / data / decodesignal.cpp
index 5701aeb09b5eff7262d83b5336ba4d370cc91b4f..e8206a088bac285077271d0d5f6db08cd442649b 100644 (file)
@@ -181,6 +181,13 @@ void DecodeSignal::begin_decode()
                return;
        }
 
+       // Make sure that all assigned channels still provide logic data
+       // (can happen when a converted signal was assigned but the
+       // conversion removed in the meanwhile)
+       for (data::DecodeChannel &ch : channels_)
+               if (ch.assigned_signal && !(ch.assigned_signal->logic_data() != nullptr))
+                       ch.assigned_signal = nullptr;
+
        // Check that all decoders have the required channels
        for (const shared_ptr<decode::Decoder> &dec : stack_)
                if (!dec->have_required_channels()) {