diff --git a/CHANGELOG.md b/CHANGELOG.md index c0038417bb7..ece71157099 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Routing: - FIXED: Fix generation of inefficient MLD partitions [#6084](https://github.com/Project-OSRM/osrm-backend/pull/6084) - FIXED: Fix MLD level mask generation to support 64-bit masks. [#6123](https://github.com/Project-OSRM/osrm-backend/pull/6123) + - FIXED: Fix metric offset overflow for large MLD partitions. This breaks the **data format** [#6124](https://github.com/Project-OSRM/osrm-backend/pull/6124) # 5.25.0 - Changes from 5.24.0 diff --git a/include/partitioner/cell_storage.hpp b/include/partitioner/cell_storage.hpp index 42c347861d2..c2331f316ba 100644 --- a/include/partitioner/cell_storage.hpp +++ b/include/partitioner/cell_storage.hpp @@ -52,11 +52,9 @@ namespace detail template class CellStorageImpl { public: - using ValueOffset = std::uint32_t; - using BoundaryOffset = std::uint32_t; + using ValueOffset = std::uint64_t; + using BoundaryOffset = std::uint64_t; using BoundarySize = std::uint32_t; - using SourceIndex = std::uint32_t; - using DestinationIndex = std::uint32_t; static constexpr auto INVALID_VALUE_OFFSET = std::numeric_limits::max(); static constexpr auto INVALID_BOUNDARY_OFFSET = std::numeric_limits::max();