fix possible crash when setting delivery name w/o panshell
[ardour.git] / libs / ardour / delivery.cc
index 045417b0ccc20b2716854ae38bff6d541048664c..30f7ef63fa2761245543d347d1f7a45ee57eedac 100644 (file)
@@ -249,6 +249,7 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, pf
           processing pathway that wants to use this->output_buffers() for some reason.
        */
 
+       // TODO delayline -- latency-compensation
        output_buffers().get_backend_port_addresses (ports, nframes);
 
        // this Delivery processor is not a derived type, and thus we assume
@@ -397,8 +398,7 @@ Delivery::reset_panner ()
        if (panners_legal) {
                if (!_no_panner_reset) {
 
-                       if (_panshell) {
-                               assert (_role == Main || _role == Aux || _role == Send);
+                       if (_panshell && _role != Insert && _role != Listen) {
                                _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
                        }
                }
@@ -412,8 +412,7 @@ Delivery::reset_panner ()
 void
 Delivery::panners_became_legal ()
 {
-       if (_panshell) {
-               assert (_role == Main || _role == Aux || _role == Send);
+       if (_panshell && _role != Insert) {
                _panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
        }
 
@@ -558,7 +557,7 @@ Delivery::set_name (const std::string& name)
 {
        bool ret = IOProcessor::set_name (name);
 
-       if (ret) {
+       if (ret && _panshell) {
                ret = _panshell->set_name (name);
        }