From c8c6bca6587450ff64303dbc994a4cd28d6ce7aa Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 10 Aug 2016 16:31:56 +0200 Subject: [PATCH] fix crash when copy'ing latent plugins --- libs/ardour/plugin_insert.cc | 7 +++++++ libs/ardour/route.cc | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index bfa86fbc80..9a0e6c55c4 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -555,6 +555,13 @@ PluginInsert::activate () } Processor::activate (); + /* when setting state e.g ProcessorBox::paste_processor_state () + * the plugin is not yet owned by a route. + * but no matter. Route::add_processors() will call activate () again + */ + if (!owner ()) { + return; + } if (_plugin_signal_latency != signal_latency ()) { _plugin_signal_latency = signal_latency (); latency_changed (); diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 4b14d761eb..11db73241c 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1019,7 +1019,7 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr } if ((*i)->active()) { - // why? emit ActiveChanged() ?? + // emit ActiveChanged() and latency_changed() if needed (*i)->activate (); } -- 2.30.2