Add a null check to ports when loading an export channel from xml + fix indentation for commit r8247
git-svn-id: svn://localhost/ardour2/branches/3.0@8249 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -979,11 +979,11 @@ AudioEngine::get_port_by_name (const string& portname)
|
||||
}
|
||||
|
||||
if (portname.find_first_of (':') != string::npos) {
|
||||
if (portname.substr (0, jack_client_name.length ()) != jack_client_name) {
|
||||
/* not an ardour: port */
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (portname.substr (0, jack_client_name.length ()) != jack_client_name) {
|
||||
/* not an ardour: port */
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
std::string const rel = make_port_name_relative (portname);
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#include "ardour/export_failed.h"
|
||||
#include "ardour/session.h"
|
||||
|
||||
#include "pbd/error.h"
|
||||
|
||||
using namespace ARDOUR;
|
||||
|
||||
bool
|
||||
@@ -72,7 +74,13 @@ PortExportChannel::set_state (XMLNode * node, Session & session)
|
||||
XMLNodeList xml_ports = node->children ("Port");
|
||||
for (XMLNodeList::iterator it = xml_ports.begin(); it != xml_ports.end(); ++it) {
|
||||
if ((prop = (*it)->property ("name"))) {
|
||||
ports.insert (dynamic_cast<AudioPort *> (session.engine().get_port_by_name (prop->value())));
|
||||
std::string const & name = prop->value();
|
||||
AudioPort * port = dynamic_cast<AudioPort *> (session.engine().get_port_by_name (name));
|
||||
if (port) {
|
||||
ports.insert (port);
|
||||
} else {
|
||||
PBD::warning << string_compose (_("Could not get port for export channel \"%1\", dropping the channel"), name) << endmsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user