From e112ed3d6abf631b1f42ea41bb1046ed1cd939df Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 26 Apr 2010 21:29:47 +0000 Subject: [PATCH] Make Session listen to DropReferences from Sources, and remove them. Call drop_references for a Source in one imnportant case which occurs during MIDI track creation. git-svn-id: svn://localhost/ardour2/branches/3.0@6996 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/midi_diskstream.cc | 1 + libs/ardour/session.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index 8b047490e7..f45331a5b1 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -1323,6 +1323,7 @@ MidiDiskstream::use_new_write_source (uint32_t n) if (_write_source->is_empty ()) { _write_source->mark_for_remove (); + _write_source->drop_references (); _write_source.reset(); } else { _write_source.reset(); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 9cf48b7154..56e4660125 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2424,6 +2424,7 @@ Session::add_source (boost::shared_ptr source) } if (result.second) { + source->DropReferences.connect_same_thread (*this, boost::bind (&Session::remove_source, this, boost::weak_ptr (source))); set_dirty(); }