diff options
Diffstat (limited to 'libs/ardour/vca.cc')
-rw-r--r-- | libs/ardour/vca.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/vca.cc b/libs/ardour/vca.cc index 3eff1a6b45..8ec3a55ac4 100644 --- a/libs/ardour/vca.cc +++ b/libs/ardour/vca.cc @@ -92,6 +92,12 @@ VCA::~VCA () { DEBUG_TRACE (DEBUG::Destruction, string_compose ("delete VCA %1\n", number())); { + Glib::Threads::Mutex::Lock lm (_control_lock); + for (Controls::const_iterator li = _controls.begin(); li != _controls.end(); ++li) { + boost::dynamic_pointer_cast<AutomationControl>(li->second)->drop_references (); + } + } + { Glib::Threads::Mutex::Lock lm (number_lock); if (_number == next_number - 1) { /* this was the "last" VCA added, so rewind the next number so |