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:
Sakari Bergen
2010-12-11 20:56:53 +00:00
parent fec8f4ad49
commit ccb7a5a794
2 changed files with 14 additions and 6 deletions

View File

@@ -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);

View File

@@ -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;
}
}
}
}