* Creates a list of decendant signals filtered by type.
*/
template<class T>
- std::set< std::shared_ptr<T> > list_by_type() {
- std::set< std::shared_ptr<T> > items;
+ std::vector< std::shared_ptr<T> > list_by_type() {
+ std::vector< std::shared_ptr<T> > items;
for (const auto &r : *this) {
std::shared_ptr<T> p = std::dynamic_pointer_cast<T>(r);
if (p)
- items.insert(p);
+ items.push_back(p);
}
return items;
// Make a list of traces that are being added, and a list of traces
// that are being removed
- const set<shared_ptr<Trace>> prev_traces = list_by_type<Trace>();
+ const vector<shared_ptr<Trace>> prev_trace_list = list_by_type<Trace>();
+ const set<shared_ptr<Trace>> prev_traces(
+ prev_trace_list.begin(), prev_trace_list.end());
shared_lock<shared_mutex> lock(session_.signals_mutex());
const unordered_set< shared_ptr<Signal> > &sigs(session_.signals());