Return 0 from the topological sort if it failed due to
authorCarl Hetherington <carl@carlh.net>
Wed, 9 Nov 2011 17:43:52 +0000 (17:43 +0000)
committerCarl Hetherington <carl@carlh.net>
Wed, 9 Nov 2011 17:43:52 +0000 (17:43 +0000)
feedback.

git-svn-id: svn://localhost/ardour2/branches/3.0@10509 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/route_dag.cc

index 6a6e8d2bbd8859ed9635cff2cbbb057b9c5c1bdd..3b13cf9415f613006089467ad8437a9e4827ed2a 100644 (file)
@@ -146,7 +146,9 @@ struct RouteRecEnabledComparator
        }
 };
 
-               
+/** Perform a topological sort of a list of routes using a directed graph representing connections.
+ *  @return Sorted list of routes, or 0 if the graph contains cycles (feedback loops).
+ */
 boost::shared_ptr<RouteList>
 ARDOUR::topological_sort (
        boost::shared_ptr<RouteList> routes,
@@ -189,7 +191,8 @@ ARDOUR::topological_sort (
        }
 
        if (!edges.empty ()) {
-               cout << "Feedback detected.\n";
+               /* There are cycles in the graph, so we can't do a topological sort */
+               return boost::shared_ptr<RouteList> ();
        }
 
        return sorted_routes;