assert(index < (int)stack_.size());
// Find the decoder in the stack
- auto iter = stack_.begin();
- for (int i = 0; i < index; i++, iter++)
- assert(iter != stack_.end());
+ auto iter = stack_.begin() + index;
+ assert(iter != stack_.end());
+
+ shared_ptr<Decoder> dec = *iter;
- decoder_removed(iter->get());
+ decoder_removed(dec.get());
// Delete the element
stack_.erase(iter);
QString assigned_signal_name = settings.value("assigned_signal_name").toString();
for (const shared_ptr<data::SignalBase>& signal : signalbases)
- if (signal->name() == assigned_signal_name)
+ if ((signal->name() == assigned_signal_name) && (signal->type() != SignalBase::DecodeChannel))
channel->assigned_signal = signal.get();
channel->initial_pin_state = settings.value("initial_pin_state").toInt();