diff options
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 71af69fdee..bcbf14bdaf 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1073,7 +1073,8 @@ Route::add_processor_from_xml_2X (const XMLNode& node, int version) } else if (node.name() == "Send") { - processor.reset (new Send (_session, _pannable, _mute_master)); + boost::shared_ptr<Pannable> sendpan (new Pannable (_session)); + processor.reset (new Send (_session, sendpan, _mute_master)); } else { @@ -1598,7 +1599,10 @@ Route::reset_instrument_info () int Route::configure_processors (ProcessorStreams* err) { +#ifndef PLATFORM_WINDOWS assert (!AudioEngine::instance()->process_lock().trylock()); +#endif + if (!_in_configure_processors) { Glib::Threads::RWLock::WriterLock lm (_processor_lock); return configure_processors_unlocked (err); @@ -1668,7 +1672,9 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err) int Route::configure_processors_unlocked (ProcessorStreams* err) { +#ifndef PLATFORM_WINDOWS assert (!AudioEngine::instance()->process_lock().trylock()); +#endif if (_in_configure_processors) { return 0; @@ -2719,7 +2725,8 @@ Route::add_aux_send (boost::shared_ptr<Route> route, boost::shared_ptr<Processor { Glib::Threads::Mutex::Lock lm (AudioEngine::instance()->process_lock ()); - listener.reset (new InternalSend (_session, _pannable, _mute_master, route, Delivery::Aux)); + boost::shared_ptr<Pannable> sendpan (new Pannable (_session)); + listener.reset (new InternalSend (_session, sendpan, _mute_master, route, Delivery::Aux)); } add_processor (listener, before); @@ -2806,7 +2813,7 @@ Route::feeds (boost::shared_ptr<Route> other, bool* via_sends_only) { const FedBy& fed_by (other->fed_by()); - for (FedBy::iterator f = fed_by.begin(); f != fed_by.end(); ++f) { + for (FedBy::const_iterator f = fed_by.begin(); f != fed_by.end(); ++f) { boost::shared_ptr<Route> sr = f->r.lock(); if (sr && (sr.get() == this)) { |