diff --git a/routing/routing_session.cpp b/routing/routing_session.cpp index a00e116fd1..5bd4681135 100644 --- a/routing/routing_session.cpp +++ b/routing/routing_session.cpp @@ -435,8 +435,8 @@ double RoutingSession::GetDistanceToCurrentCamM(SpeedCameraRestriction & camera, camera = m_lastCheckedCamera; return m_poly.GetDistanceM(currentIter, m_poly.GetIterToIndex(camera.m_index)); } - size_t const currentIndex = max(static_cast(currentIter.m_ind), - static_cast(m_lastCheckedCamera.m_index) + 1); + size_t const currentIndex = max(currentIter.m_ind, + m_lastCheckedCamera.m_index + 1); for (size_t i = currentIndex; i < m_poly.GetPolyline().GetSize(); ++i) { uint8_t speed = CheckCameraInPoint(m_poly.GetPolyline().GetPoint(i), index); diff --git a/routing/routing_session.hpp b/routing/routing_session.hpp index 880a66e790..3ff1de6bb4 100644 --- a/routing/routing_session.hpp +++ b/routing/routing_session.hpp @@ -26,10 +26,10 @@ namespace routing { struct SpeedCameraRestriction { - uint32_t m_index; // Index of a polyline point where camera is located. + size_t m_index; // Index of a polyline point where camera is located. uint8_t m_maxSpeedKmH; // Maximum speed allowed by the camera. - SpeedCameraRestriction(uint32_t index, uint8_t maxSpeed) : m_index(index), m_maxSpeedKmH(maxSpeed) {} + SpeedCameraRestriction(size_t index, uint8_t maxSpeed) : m_index(index), m_maxSpeedKmH(maxSpeed) {} SpeedCameraRestriction() : m_index(0), m_maxSpeedKmH(numeric_limits::max()) {} }; diff --git a/routing/speed_camera.cpp b/routing/speed_camera.cpp index 5127ff023c..d65f7137e5 100644 --- a/routing/speed_camera.cpp +++ b/routing/speed_camera.cpp @@ -33,8 +33,9 @@ uint8_t ReadCameraRestriction(FeatureType & ft) if (speed.empty()) return 0; int result; - strings::to_int(speed, result); - return result; + if (strings::to_int(speed, result)) + return result; + return 0; } uint8_t CheckCameraInPoint(m2::PointD const & point, Index const & index)