]> sigrok.org Git - pulseview.git/blobdiff - pv/session.cpp
Fix #771 by using black with alpha instead of an opaque grey
[pulseview.git] / pv / session.cpp
index e2b6dd7174a0bcdfcadef6ab0041454ab4a2a8c0..4bc510e9fa538d5eb3a848fde39ea4604520512d 100644 (file)
@@ -142,7 +142,16 @@ void Session::set_device(shared_ptr<devices::Device> device)
 
        // Remove all traces
        signals_.clear();
+       cur_logic_segment_.reset();
+
+       for (auto entry : cur_analog_segments_) {
+               shared_ptr<sigrok::Channel>(entry.first).reset();
+               shared_ptr<data::AnalogSegment>(entry.second).reset();
+       }
+
+       logic_data_.reset();
        decode_traces_.clear();
+
        signals_changed();
 
        device_ = std::move(device);
@@ -338,7 +347,11 @@ void Session::set_capture_state(capture_state state)
 
 void Session::update_signals()
 {
-       assert(device_);
+       if (!device_) {
+               signals_.clear();
+               logic_data_.reset();
+               return;
+       }
 
        lock_guard<recursive_mutex> lock(data_mutex_);