Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorДобрый Ээх <bukharaev@gmail.com>2017-07-25 15:37:48 +0300
committerRoman Kuznetsov <r.kuznetsow@gmail.com>2017-07-25 20:44:34 +0300
commitfe641df515fbaabcee41277b5528b284e333af2a (patch)
tree4c938eb20d8b7a3f3f6ecbe7857c2b2b14ceeb66
parent445d18f5d3f19f5625ca8e4ec8e2913fea7827d9 (diff)
[routing] Fix crash on passing checkpoint after rebuildingbeta-930
-rw-r--r--routing/route.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/routing/route.cpp b/routing/route.cpp
index bcbf5e4ef8..b122fe83a5 100644
--- a/routing/route.cpp
+++ b/routing/route.cpp
@@ -367,7 +367,12 @@ Route::SubrouteSettings const Route::GetSubrouteSettings(size_t segmentIdx) cons
bool Route::IsSubroutePassed(size_t subrouteIdx) const
{
- size_t const segmentIdx = GetSubrouteAttrs(subrouteIdx).GetEndSegmentIdx() - 1;
+ size_t const endSegmentIdx = GetSubrouteAttrs(subrouteIdx).GetEndSegmentIdx();
+ // If all subroutes up to subrouteIdx are empty.
+ if (endSegmentIdx == 0)
+ return true;
+
+ size_t const segmentIdx = endSegmentIdx - 1;
CHECK_LESS(segmentIdx, m_routeSegments.size(), ());
double const lengthMeters = m_routeSegments[segmentIdx].GetDistFromBeginningMeters();
double const passedDistanceMeters = m_poly.GetDistanceFromBeginM();