summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/session.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 2c00fbbd80..d6753c50d9 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -680,6 +680,14 @@ Session::destroy ()
Port::PortDrop (); /* EMIT SIGNAL */
+ {
+ Glib::Threads::Mutex::Lock lm (controllables_lock);
+ for (Controllables::iterator i = controllables.begin(); i != controllables.end(); ++i) {
+ (*i)->DropReferences (); /* EMIT SIGNAL */
+ }
+ controllables.clear ();
+ }
+
/* clear history so that no references to objects are held any more */
_history.clear ();
@@ -864,6 +872,10 @@ Session::destroy ()
DEBUG_TRACE (DEBUG::Destruction, "Session::destroy() done\n");
+#ifndef NDEBUG
+ Controllable::dump_registry ();
+#endif
+
BOOST_SHOW_POINTERS ();
}