From 35ea41228023b3070ad2b12feca79e6d2fcfc4db Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 1 Mar 2011 17:39:57 +0000 Subject: [PATCH] Fix crash on session close. git-svn-id: svn://localhost/ardour2/branches/3.0@9005 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/session.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 3d1e2956f0..63f5dc8e43 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -301,12 +301,16 @@ Session::destroy () } routes.flush (); - boost::shared_ptr r = routes.reader (); - DEBUG_TRACE (DEBUG::Destruction, "delete sources\n"); - for (SourceMap::iterator i = sources.begin(); i != sources.end(); ++i) { + for (SourceMap::iterator i = sources.begin(); i != sources.end(); ) { + + SourceMap::iterator j = i; + ++j; + DEBUG_TRACE(DEBUG::Destruction, string_compose ("Dropping for source %1 ; pre-ref = %2\n", i->second->path(), i->second.use_count())); i->second->drop_references (); + + i = j; } sources.clear ();