Fix crash on session close.
authorCarl Hetherington <carl@carlh.net>
Tue, 1 Mar 2011 17:39:57 +0000 (17:39 +0000)
committerCarl Hetherington <carl@carlh.net>
Tue, 1 Mar 2011 17:39:57 +0000 (17:39 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@9005 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/session.cc

index 3d1e2956f0d01064dc77e2e0a60dd882f31da94f..63f5dc8e4362ecf9122872a1cf5eba2b7e8ac76d 100644 (file)
@@ -301,12 +301,16 @@ Session::destroy ()
        }
        routes.flush ();
 
-       boost::shared_ptr<RouteList> 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 ();