fix crash caused by trying to connect monitor section before it has ports. 5.8
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 27 Feb 2017 15:40:53 +0000 (16:40 +0100)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 27 Feb 2017 15:40:53 +0000 (16:40 +0100)
This does not fix the ordering issues caused by things happening
before the monitor section gaining ports

libs/ardour/auditioner.cc

index e1c04c462a8468fbd07954cac6110aa4f6105a4f..b190165c728d98988f31934b70d37cad566945ec 100644 (file)
@@ -137,25 +137,25 @@ Auditioner::connect ()
        via_monitor = false;
 
        if (left.empty() || left == "default") {
-                if (_session.monitor_out()) {
-                        left = _session.monitor_out()->input()->audio (0)->name();
-                        via_monitor = true;
-                } else {
+               if (_session.monitor_out() && _session.monitor_out()->input()->audio (0)) {
+                       left = _session.monitor_out()->input()->audio (0)->name();
+                       via_monitor = true;
+               } else {
                        if (outputs.size() > 0) {
                                left = outputs[0];
                        }
-                }
+               }
        }
 
        if (right.empty() || right == "default") {
-                if (_session.monitor_out()) {
-                        right = _session.monitor_out()->input()->audio (1)->name();
-                        via_monitor = true;
-                } else {
+               if (_session.monitor_out() && _session.monitor_out()->input()->audio (1)) {
+                       right = _session.monitor_out()->input()->audio (1)->name();
+                       via_monitor = true;
+               } else {
                        if (outputs.size() > 1) {
                                right = outputs[1];
                        }
-                }
+               }
        }
 
        _output->disconnect (this);