X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=570e7b766a4c80f980e5feb5e9417f0c12b3d0b9;hb=73a25a6e488f1813c1cd12da085a16e4f91ed4da;hp=9841978a67f333a6b2c5eff555e70bea98590194;hpb=9e8f0e503e0c79c3765947ba5abae0ffc76850c4;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index 9841978..570e7b7 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -739,7 +739,7 @@ void View::update_layout() TraceTreeItemOwner* View::find_prevalent_trace_group( const shared_ptr &group, - const unordered_map, shared_ptr > + const unordered_map, shared_ptr > &signal_map) { assert(group); @@ -749,13 +749,13 @@ TraceTreeItemOwner* View::find_prevalent_trace_group( // Make a set and a list of all the owners for (const auto &channel : group->channels()) { - const auto iter = signal_map.find(channel); - if (iter == signal_map.end()) - continue; - - TraceTreeItemOwner *const o = (*iter).second->owner(); - owner_list.push_back(o); - owners.insert(o); + for (auto entry : signal_map) { + if (entry.first->channel() == channel) { + TraceTreeItemOwner *const o = (entry.second)->owner(); + owner_list.push_back(o); + owners.insert(o); + } + } } // Iterate through the list of owners, and find the most prevalent @@ -776,24 +776,24 @@ TraceTreeItemOwner* View::find_prevalent_trace_group( vector< shared_ptr > View::extract_new_traces_for_channels( const vector< shared_ptr > &channels, - const unordered_map, shared_ptr > + const unordered_map, shared_ptr > &signal_map, set< shared_ptr > &add_list) { vector< shared_ptr > filtered_traces; for (const auto &channel : channels) { - const auto map_iter = signal_map.find(channel); - if (map_iter == signal_map.end()) - continue; - - shared_ptr trace = (*map_iter).second; - const auto list_iter = add_list.find(trace); - if (list_iter == add_list.end()) - continue; - - filtered_traces.push_back(trace); - add_list.erase(list_iter); + for (auto entry : signal_map) { + if (entry.first->channel() == channel) { + shared_ptr trace = entry.second; + const auto list_iter = add_list.find(trace); + if (list_iter == add_list.end()) + continue; + + filtered_traces.push_back(trace); + add_list.erase(list_iter); + } + } } return filtered_traces; @@ -939,8 +939,8 @@ void View::signals_changed() if (!session_.device()) { reset_scroll(); } else { - assert(sr_dev); sr_dev = session_.device()->device(); + assert(sr_dev); channels = sr_dev->channels(); } @@ -973,10 +973,10 @@ void View::signals_changed() inserter(remove_traces, remove_traces.begin())); // Make a look-up table of sigrok Channels to pulseview Signals - unordered_map, shared_ptr > + unordered_map, shared_ptr > signal_map; for (const shared_ptr &sig : sigs) - signal_map[sig->channel()] = sig; + signal_map[sig->base()] = sig; // Populate channel groups if (sr_dev)