diff options
author | Добрый Ээх <bukharaev@gmail.com> | 2017-07-25 15:37:48 +0300 |
---|---|---|
committer | Roman Kuznetsov <r.kuznetsow@gmail.com> | 2017-07-25 20:44:34 +0300 |
commit | fe641df515fbaabcee41277b5528b284e333af2a (patch) | |
tree | 4c938eb20d8b7a3f3f6ecbe7857c2b2b14ceeb66 | |
parent | 445d18f5d3f19f5625ca8e4ec8e2913fea7827d9 (diff) |
[routing] Fix crash on passing checkpoint after rebuildingbeta-930
-rw-r--r-- | routing/route.cpp | 7 |
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(); |