diff --git a/src/RideFile.cpp b/src/RideFile.cpp index ee2f95e62..9a07d7ac2 100644 --- a/src/RideFile.cpp +++ b/src/RideFile.cpp @@ -119,8 +119,11 @@ RideFile::intervalBegin(const RideFileInterval &interval) const QVector::const_iterator i = std::lower_bound( dataPoints_.begin(), dataPoints_.end(), &p, ComparePointSecs()); if (i == dataPoints_.end()) - return dataPoints_.size(); - return i - dataPoints_.begin(); + return dataPoints_.size()-1; + int offset = i - dataPoints_.begin(); + if (offset > dataPoints_.size()) return dataPoints_.size()-1; + else if (offset <0) return 0; + else return offset; } double @@ -162,7 +165,7 @@ RideFile::distanceIndex(double km) const QVector::const_iterator i = std::lower_bound( dataPoints_.begin(), dataPoints_.end(), &p, ComparePointKm()); if (i == dataPoints_.end()) - return dataPoints_.size(); + return dataPoints_.size()-1; return i - dataPoints_.begin(); }