projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
DecodeTrace: Don't dereference iterator pointing at end of container.
[pulseview.git]
/
pv
/
view
/
decodetrace.cpp
diff --git
a/pv/view/decodetrace.cpp
b/pv/view/decodetrace.cpp
index f44d8f94b75ea0991fb6791dd5dc51a975f49a7a..020ce77090acd4d86bc06ba49185be1282106a02 100644
(file)
--- a/
pv/view/decodetrace.cpp
+++ b/
pv/view/decodetrace.cpp
@@
-710,8
+710,7
@@
QComboBox* DecodeTrace::create_channel_selector(
{
assert(dec);
{
assert(dec);
- shared_lock<shared_mutex> lock(session_.signals_mutex());
- const auto &sigs(session_.signals());
+ const auto sigs(session_.signals());
vector< shared_ptr<Signal> > sig_list(sigs.begin(), sigs.end());
std::sort(sig_list.begin(), sig_list.end(),
vector< shared_ptr<Signal> > sig_list(sigs.begin(), sigs.end());
std::sort(sig_list.begin(), sig_list.end(),
@@
-734,7
+733,9
@@
QComboBox* DecodeTrace::create_channel_selector(
{
selector->addItem(s->name(),
qVariantFromValue((void*)s.get()));
{
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);
}
selector->setCurrentIndex(
selector->count() - 1);
}
@@
-749,8
+750,7
@@
void DecodeTrace::commit_decoder_channels(shared_ptr<data::decode::Decoder> &dec
map<const srd_channel*, shared_ptr<LogicSignal> > channel_map;
map<const srd_channel*, shared_ptr<LogicSignal> > channel_map;
- shared_lock<shared_mutex> lock(session_.signals_mutex());
- const unordered_set< shared_ptr<Signal> > &sigs(session_.signals());
+ const unordered_set< shared_ptr<Signal> > sigs(session_.signals());
for (const ChannelSelector &s : channel_selectors_)
{
for (const ChannelSelector &s : channel_selectors_)
{