]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/route.cpp
Return null from Route::find if a route can't be found
[r2c2.git] / source / libmarklin / route.cpp
index 970c2d79dec63574691656f177af205208a3f751..daa044f9b9b4054b774421df3e6ada5168f76c43 100644 (file)
@@ -110,9 +110,6 @@ list<Track *> dijkstra(Track &from, unsigned ep, const Pred &goal)
                }
        }
 
-       if(!final)
-               throw InvalidParameterValue("Could not find a route");
-
        list<Track *> result;
        for(Node *node=final; node; node=node->prev)
                result.push_front(node->track);
@@ -125,6 +122,9 @@ Route *create_route(Track &from, unsigned ep, const Pred &goal)
 {
        list<Track *> tracks = dijkstra(from, ep, goal);
 
+       if(tracks.empty())
+               return 0;
+
        Route *route = new Route(from.get_layout());
        for(list<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
                route->add_track(**i);