From ccb7a5a7949d834dca0724084a109a4692145d7a Mon Sep 17 00:00:00 2001 From: Sakari Bergen Date: Sat, 11 Dec 2010 20:56:53 +0000 Subject: [PATCH] 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 --- libs/ardour/audioengine.cc | 10 +++++----- libs/ardour/export_channel.cc | 10 +++++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 7df9d16e90..7da6876577 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -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); diff --git a/libs/ardour/export_channel.cc b/libs/ardour/export_channel.cc index 0f2548dd00..9c0bc38792 100644 --- a/libs/ardour/export_channel.cc +++ b/libs/ardour/export_channel.cc @@ -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 (session.engine().get_port_by_name (prop->value()))); + std::string const & name = prop->value(); + AudioPort * port = dynamic_cast (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; + } } } }