summaryrefslogtreecommitdiff
path: root/libs/ardour/slavable_automation_control.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-06-10 14:37:05 +0200
committerRobin Gareus <robin@gareus.org>2017-06-10 14:38:21 +0200
commitf0d3121d6c03bf6fdc2d95e3795659d9790ebb24 (patch)
tree57e3105102a466136509377c9a64e03eece7c018 /libs/ardour/slavable_automation_control.cc
parentd0307e10c9364882c868e2c1586e64d37996315b (diff)
amend a1b4f9b8ab - handle disconnecting from all masters
Diffstat (limited to 'libs/ardour/slavable_automation_control.cc')
-rw-r--r--libs/ardour/slavable_automation_control.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/ardour/slavable_automation_control.cc b/libs/ardour/slavable_automation_control.cc
index 5f24a8786f..c912d16370 100644
--- a/libs/ardour/slavable_automation_control.cc
+++ b/libs/ardour/slavable_automation_control.cc
@@ -328,12 +328,12 @@ SlavableAutomationControl::master_going_away (boost::weak_ptr<AutomationControl>
void
SlavableAutomationControl::remove_master (boost::shared_ptr<AutomationControl> m)
{
- masters_connections.erase (boost::weak_ptr<AutomationControl>(m));
pre_remove_master (m);
{
Glib::Threads::RWLock::WriterLock lm (master_lock);
+ masters_connections.erase (boost::weak_ptr<AutomationControl>(m));
if (!_masters.erase (m->id())) {
return;
}
@@ -386,6 +386,7 @@ SlavableAutomationControl::clear_masters ()
had_masters = true;
}
_masters.clear ();
+ masters_connections.clear ();
new_value = get_value_locked ();
}