summaryrefslogtreecommitdiff
path: root/libs/ardour/export_channel.cc
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2010-12-11 20:56:53 +0000
committerSakari Bergen <sakari.bergen@beatwaves.net>2010-12-11 20:56:53 +0000
commitccb7a5a7949d834dca0724084a109a4692145d7a (patch)
tree107632d467bef03f0beb5397bab04003e1506cc4 /libs/ardour/export_channel.cc
parentfec8f4ad49682a77163ff4739d8e4a3d044d7fce (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.cc10
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;
+ }
}
}
}