diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2010-12-11 20:56:53 +0000 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2010-12-11 20:56:53 +0000 |
commit | ccb7a5a7949d834dca0724084a109a4692145d7a (patch) | |
tree | 107632d467bef03f0beb5397bab04003e1506cc4 /libs/ardour/export_channel.cc | |
parent | fec8f4ad49682a77163ff4739d8e4a3d044d7fce (diff) |
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
Diffstat (limited to 'libs/ardour/export_channel.cc')
-rw-r--r-- | libs/ardour/export_channel.cc | 10 |
1 files changed, 9 insertions, 1 deletions
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<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; + } } } } |