13
0

Fix order setting I/O names

IO::set_name() may fail, in case Port::set_name() fails.
In that case the IOProcessor should not update its name.
This commit is contained in:
Robin Gareus 2020-02-29 01:51:04 +01:00
parent 814af0f51c
commit c086f05ba5
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -245,16 +245,25 @@ IOProcessor::natural_input_streams () const
}
bool
IOProcessor::set_name (const std::string& name)
IOProcessor::set_name (const std::string& new_name)
{
bool ret = SessionObject::set_name (name);
bool ret = true;
if (name () == new_name) {
return ret;
}
if (ret && _own_input && _input) {
ret = _input->set_name (name);
ret = _input->set_name (new_name);
}
if (ret && _own_output && _output) {
ret = _output->set_name (name);
ret = _output->set_name (new_name);
}
if (ret) {
ret = SessionObject::set_name (new_name); // never fails
assert (ret);
}
return ret;