diff options
author | Olga Khlopkova <o.khlopkova@corp.mail.ru> | 2020-06-08 16:47:32 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <bykoianko@gmail.com> | 2020-06-09 08:49:37 +0300 |
commit | ad2ff7e3a7f6a5b0ed7d9a7f41464f61ab55b194 (patch) | |
tree | 5844ba88cbbada8ce5884cfcff37c52f6d563f88 | |
parent | bc1b9a6b92cdae77a29c62867aee72b961ee5cee (diff) |
[routing] Fix for crash in CarDirectionsEngine::Generate.release-100
-rw-r--r-- | routing/car_directions.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/routing/car_directions.cpp b/routing/car_directions.cpp index dfb1f8a141..920196ab48 100644 --- a/routing/car_directions.cpp +++ b/routing/car_directions.cpp @@ -201,9 +201,18 @@ bool CarDirectionsEngine::Generate(IndexRoadGraph const & graph, return false; ::RoutingResult resultGraph(routeEdges, m_adjacentEdges, m_pathSegments); - MakeTurnAnnotation(resultGraph, *m_numMwmIds, cancellable, routeGeometry, turns, streetNames, - segments); - CHECK_EQUAL(routeGeometry.size(), pathSize, ()); + auto const res = MakeTurnAnnotation(resultGraph, *m_numMwmIds, cancellable, routeGeometry, turns, + streetNames, segments); + + if (res != RouterResultCode::NoError) + return false; + + CHECK_EQUAL( + routeGeometry.size(), pathSize, + ("routeGeometry and path have different sizes. routeGeometry size:", routeGeometry.size(), + "path size:", pathSize, "segments size:", segments.size(), "routeEdges size:", + routeEdges.size(), "resultGraph.GetSegments() size:", resultGraph.GetSegments().size())); + // In case of bicycle routing |m_pathSegments| may have an empty // |LoadedPathSegment::m_segments| fields. In that case |segments| is empty // so size of |segments| is not equal to size of |routeEdges|. |