Skip to content

Commit 51b74a9

Browse files
authored
Avoid copy of std::function-based callback in path unpacking (#6895)
* Avoid copy of std::function-based callback in path unpacking * Fix formatting * Update CHANGELOG.md
1 parent ed5003b commit 51b74a9

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
- NodeJS:
2121
- CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452)
2222
- Misc:
23+
- CHANGED: Avoid copy of std::function-based callback in path unpacking [#6895](https://github.com/Project-OSRM/osrm-backend/pull/6895)
2324
- CHANGED: Replace boost::hash by std::hash [#6892](https://github.com/Project-OSRM/osrm-backend/pull/6892)
2425
- CHANGED: Partial fix migration from boost::optional to std::optional [#6551](https://github.com/Project-OSRM/osrm-backend/issues/6551)
2526
- CHANGED: Update Conan Boost version to 1.85.0. [#6868](https://github.com/Project-OSRM/osrm-backend/pull/6868)

include/engine/datafacade/algorithm_datafacade.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ template <> class AlgorithmDataFacade<CH>
5555

5656
virtual EdgeID FindSmallestEdge(const NodeID edge_based_node_from,
5757
const NodeID edge_based_node_to,
58-
const std::function<bool(EdgeData)> filter) const = 0;
58+
const std::function<bool(const EdgeData &)> &filter) const = 0;
5959
};
6060

6161
template <> class AlgorithmDataFacade<MLD>

include/engine/datafacade/contiguous_internalmem_datafacade.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,10 @@ class ContiguousInternalMemoryAlgorithmDataFacade<CH> : public datafacade::Algor
130130
edge_based_node_from, edge_based_node_to, result);
131131
}
132132

133-
EdgeID FindSmallestEdge(const NodeID edge_based_node_from,
134-
const NodeID edge_based_node_to,
135-
std::function<bool(EdgeData)> filter) const override final
133+
EdgeID
134+
FindSmallestEdge(const NodeID edge_based_node_from,
135+
const NodeID edge_based_node_to,
136+
const std::function<bool(const EdgeData &)> &filter) const override final
136137
{
137138
return m_query_graph.FindSmallestEdge(edge_based_node_from, edge_based_node_to, filter);
138139
}

unit_tests/mocks/mock_datafacade.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,10 @@ class MockAlgorithmDataFacade<engine::datafacade::CH>
238238
return SPECIAL_EDGEID;
239239
}
240240

241-
EdgeID FindSmallestEdge(const NodeID /* from */,
242-
const NodeID /* to */,
243-
std::function<bool(EdgeData)> /* filter */) const override
241+
EdgeID
242+
FindSmallestEdge(const NodeID /* from */,
243+
const NodeID /* to */,
244+
const std::function<bool(const EdgeData &)> & /* filter */) const override
244245
{
245246
return SPECIAL_EDGEID;
246247
}

0 commit comments

Comments
 (0)