Fix crash when duplicating track(s)
Compare to PluginInsert::set_state(). The sidechain must not inherit the name from the template track. That leads to port-name ambiguities. Also later there will be a crash when ::update_sidechain_name() calls IO::set_name since: _name is not found in _current_name.
This commit is contained in:
parent
4c433106a4
commit
7128c9958f
|
@ -1141,6 +1141,7 @@ IO::set_name (const string& requested_name)
|
|||
|
||||
for (PortSet::iterator i = _ports.begin(); i != _ports.end(); ++i) {
|
||||
string current_name = i->name();
|
||||
assert (current_name.find (_name) != std::string::npos);
|
||||
current_name.replace (current_name.find (_name), _name.val().length(), name);
|
||||
i->set_name (current_name);
|
||||
}
|
||||
|
|
|
@ -3167,7 +3167,6 @@ Route::set_processor_state (const XMLNode& node, int version)
|
|||
_triggerbox->set_owner (this);
|
||||
}
|
||||
_triggerbox->set_state (**niter, version);
|
||||
_triggerbox->update_sidechain_name ();
|
||||
|
||||
new_order.push_back (_triggerbox);
|
||||
} else {
|
||||
|
|
|
@ -3223,7 +3223,11 @@ TriggerBox::set_state (const XMLNode& node, int version)
|
|||
if (scnode) {
|
||||
add_midi_sidechain ();
|
||||
assert (_sidechain);
|
||||
_sidechain->set_state (*scnode, version);
|
||||
if (!regenerate_xml_or_string_ids ()) {
|
||||
_sidechain->set_state (*scnode, version);
|
||||
} else {
|
||||
update_sidechain_name ();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue