X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fdecodetrace.cpp;h=020ce77090acd4d86bc06ba49185be1282106a02;hp=c0c4d167e109f17f16eeb374aba8420d863dd86f;hb=5da5d0813b0253fbe430d3a0b7cb780df1dcb72a;hpb=60d9b99a32e551cffd2b537d3e157d578a761c9b diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp index c0c4d167..020ce770 100644 --- a/pv/view/decodetrace.cpp +++ b/pv/view/decodetrace.cpp @@ -29,6 +29,8 @@ extern "C" { #include #include +#include +#include #include #include @@ -708,8 +710,7 @@ QComboBox* DecodeTrace::create_channel_selector( { assert(dec); - shared_lock lock(session_.signals_mutex()); - const auto &sigs(session_.signals()); + const auto sigs(session_.signals()); vector< shared_ptr > sig_list(sigs.begin(), sigs.end()); std::sort(sig_list.begin(), sig_list.end(), @@ -732,7 +733,9 @@ QComboBox* DecodeTrace::create_channel_selector( { selector->addItem(s->name(), qVariantFromValue((void*)s.get())); - if ((*channel_iter).second == s) + + if (channel_iter != dec->channels().end() && + (*channel_iter).second == s) selector->setCurrentIndex( selector->count() - 1); } @@ -747,8 +750,7 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec map > channel_map; - shared_lock lock(session_.signals_mutex()); - const unordered_set< shared_ptr > &sigs(session_.signals()); + const unordered_set< shared_ptr > sigs(session_.signals()); for (const ChannelSelector &s : channel_selectors_) {