Skip to content

Commit f5598ef

Browse files
Add .reserve(...) to assembleGeometry function (#6983)
1 parent ab771c6 commit f5598ef

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- NodeJS:
2525
- CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452)
2626
- Misc:
27+
- CHANGED: Add .reserve(...) to assembleGeometry function. [#6983](https://github.com/Project-OSRM/osrm-backend/pull/6983)
2728
- CHANGED: Get rid of boost::optional leftovers. [#6977](https://github.com/Project-OSRM/osrm-backend/pull/6977)
2829
- CHANGED: Use Link Time Optimisation whenever possible. [#6967](https://github.com/Project-OSRM/osrm-backend/pull/6967)
2930
- CHANGED: Use struct instead of tuple to define UnpackedPath. [#6974](https://github.com/Project-OSRM/osrm-backend/pull/6974)

include/engine/guidance/assemble_geometry.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade,
3737
{
3838
LegGeometry geometry;
3939

40+
// each container will at most have `leg_data.size()` + 1/2 elements in it
41+
// these additional 1/2 elements come from processing of very first and very last segment
42+
geometry.locations.reserve(leg_data.size() + 2);
43+
geometry.segment_distances.reserve(leg_data.size() + 1);
44+
geometry.segment_offsets.reserve(leg_data.size() + 1);
45+
geometry.annotations.reserve(leg_data.size() + 1);
46+
geometry.node_ids.reserve(leg_data.size() + 2);
47+
4048
// segment 0 first and last
4149
geometry.segment_offsets.push_back(0);
4250
geometry.locations.push_back(source_node.location);

0 commit comments

Comments
 (0)