From 357095b920c4096acd529e4fa6ead9b59cb6a9ec Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 6 Aug 2020 17:59:16 +0200 Subject: [PATCH] AU scan: only update config when discovering new plugins When reading cached info only, crash protection is not needed. --- libs/ardour/plugin_manager.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index da3d225f20..17782bf253 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -964,17 +964,21 @@ PluginManager::au_refresh (bool cache_only) { DEBUG_TRACE (DEBUG::PluginManager, "AU: refresh\n"); - // disable automatic discovery in case we crash bool discover_at_start = Config->get_discover_audio_units (); - Config->set_discover_audio_units (false); - Config->save_state(); + if (discover_at_start) { + /* disable automatic discovery in case scanning crashes */ + Config->set_discover_audio_units (false); + Config->save_state(); + } delete _au_plugin_info; _au_plugin_info = AUPluginInfo::discover(cache_only && !discover_at_start); - // successful scan re-enabled automatic discovery if it was set - Config->set_discover_audio_units (discover_at_start); - Config->save_state(); + if (discover_at_start) { + /* successful scan re-enabled automatic discovery if it was set */ + Config->set_discover_audio_units (discover_at_start); + Config->save_state(); + } for (PluginInfoList::iterator i = _au_plugin_info->begin(); i != _au_plugin_info->end(); ++i) { set_tags ((*i)->type, (*i)->unique_id, (*i)->category, (*i)->name, FromPlug);