From 1ac39ebac020c8c020387cda7aaf1524823a3167 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 21 Dec 2008 00:13:04 +0000 Subject: Fix crash for very short lived Jack ports (fix ticket #188). git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@1883 a436a847-0d15-0410-975c-d299462d15a1 --- src/JackDriver.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/JackDriver.cpp') diff --git a/src/JackDriver.cpp b/src/JackDriver.cpp index 145ac78..8e9b78f 100644 --- a/src/JackDriver.cpp +++ b/src/JackDriver.cpp @@ -149,13 +149,18 @@ JackDriver::create_port_view(Patchage* patchage, if (id.type == PortID::JACK_ID) jack_port = jack_port_by_id(_client, id.id.jack_id); + if (jack_port == NULL) + return boost::shared_ptr(); + + const int jack_flags = jack_port_flags(jack_port); + string module_name, port_name; port_names(id, module_name, port_name); ModuleType type = InputOutput; if (_app->state_manager()->get_module_split(module_name, - (jack_port_flags(jack_port) & JackPortIsTerminal))) { - if (jack_port_flags(jack_port) & JackPortIsInput) { + (jack_flags & JackPortIsTerminal))) { + if (jack_flags & JackPortIsInput) { type = Input; } else { type = Output; @@ -191,6 +196,7 @@ JackDriver::create_port_view(Patchage* patchage, boost::shared_ptr JackDriver::create_port(boost::shared_ptr parent, jack_port_t* port) { + assert(port); const char* const type_str = jack_port_type(port); PortType port_type; -- cgit v1.2.1