summaryrefslogtreecommitdiff
path: root/libs/ardour/vca.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/vca.cc')
-rw-r--r--libs/ardour/vca.cc6
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