From 51b74a99aa5a7f04693455e4fb758feb4f939b73 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Thu, 23 May 2024 18:51:51 +0200 Subject: [PATCH] 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 --- CHANGELOG.md | 1 + include/engine/datafacade/algorithm_datafacade.hpp | 2 +- .../datafacade/contiguous_internalmem_datafacade.hpp | 7 ++++--- unit_tests/mocks/mock_datafacade.hpp | 7 ++++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 302b7cc9a..daa7c1d5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ - NodeJS: - CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452) - Misc: + - CHANGED: Avoid copy of std::function-based callback in path unpacking [#6895](https://github.com/Project-OSRM/osrm-backend/pull/6895) - CHANGED: Replace boost::hash by std::hash [#6892](https://github.com/Project-OSRM/osrm-backend/pull/6892) - CHANGED: Partial fix migration from boost::optional to std::optional [#6551](https://github.com/Project-OSRM/osrm-backend/issues/6551) - CHANGED: Update Conan Boost version to 1.85.0. [#6868](https://github.com/Project-OSRM/osrm-backend/pull/6868) diff --git a/include/engine/datafacade/algorithm_datafacade.hpp b/include/engine/datafacade/algorithm_datafacade.hpp index 7965784bc..192d024fc 100644 --- a/include/engine/datafacade/algorithm_datafacade.hpp +++ b/include/engine/datafacade/algorithm_datafacade.hpp @@ -55,7 +55,7 @@ template <> class AlgorithmDataFacade virtual EdgeID FindSmallestEdge(const NodeID edge_based_node_from, const NodeID edge_based_node_to, - const std::function filter) const = 0; + const std::function &filter) const = 0; }; template <> class AlgorithmDataFacade diff --git a/include/engine/datafacade/contiguous_internalmem_datafacade.hpp b/include/engine/datafacade/contiguous_internalmem_datafacade.hpp index ac9497eb0..b6e1532d3 100644 --- a/include/engine/datafacade/contiguous_internalmem_datafacade.hpp +++ b/include/engine/datafacade/contiguous_internalmem_datafacade.hpp @@ -130,9 +130,10 @@ class ContiguousInternalMemoryAlgorithmDataFacade : public datafacade::Algor edge_based_node_from, edge_based_node_to, result); } - EdgeID FindSmallestEdge(const NodeID edge_based_node_from, - const NodeID edge_based_node_to, - std::function filter) const override final + EdgeID + FindSmallestEdge(const NodeID edge_based_node_from, + const NodeID edge_based_node_to, + const std::function &filter) const override final { return m_query_graph.FindSmallestEdge(edge_based_node_from, edge_based_node_to, filter); } diff --git a/unit_tests/mocks/mock_datafacade.hpp b/unit_tests/mocks/mock_datafacade.hpp index a0de5a245..dc2541713 100644 --- a/unit_tests/mocks/mock_datafacade.hpp +++ b/unit_tests/mocks/mock_datafacade.hpp @@ -238,9 +238,10 @@ class MockAlgorithmDataFacade return SPECIAL_EDGEID; } - EdgeID FindSmallestEdge(const NodeID /* from */, - const NodeID /* to */, - std::function /* filter */) const override + EdgeID + FindSmallestEdge(const NodeID /* from */, + const NodeID /* to */, + const std::function & /* filter */) const override { return SPECIAL_EDGEID; }