From 4ab3165ae32d59b4e2a51fe4b6bf0ea4f7926370 Mon Sep 17 00:00:00 2001 From: Michael Krasnyk Date: Wed, 29 Mar 2017 10:10:57 +0200 Subject: [PATCH] Fix unnecessary duplication of backward segments for non-split edges for edges with the split flag false and in_backward_direction true if in_forward_direction is also true backward segments can be incorrectly duplicated --- src/extractor/extractor_callbacks.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extractor/extractor_callbacks.cpp b/src/extractor/extractor_callbacks.cpp index e1bc5c03c..501fbd82b 100644 --- a/src/extractor/extractor_callbacks.cpp +++ b/src/extractor/extractor_callbacks.cpp @@ -330,7 +330,7 @@ void ExtractorCallbacks::ProcessWay(const osmium::Way &input_way, const Extracti (turn_lane_id_forward != turn_lane_id_backward)); if (in_forward_direction) - { + { // add (forward) segments or (forward,backward) for non-split edges in backward direction util::for_each_pair( nodes.cbegin(), nodes.cend(), @@ -355,8 +355,8 @@ void ExtractorCallbacks::ProcessWay(const osmium::Way &input_way, const Extracti }); } - if (in_backward_direction || split_edge) - { + if (in_backward_direction && (!in_forward_direction || split_edge)) + { // add (backward) segments for split edges or not in forward direction util::for_each_pair( nodes.cbegin(), nodes.cend(),