diff options
-rw-r--r-- | libs/ardour/session.cc | 12 |
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 (); } |