From 2549f7254a9ddebaaf775311549e7b66cadf3ab7 Mon Sep 17 00:00:00 2001 From: DennisOSRM Date: Fri, 23 Mar 2012 11:06:33 +0100 Subject: [PATCH] Fixing a minor problem with multiple via nodes. --- DataStructures/SearchEngine.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DataStructures/SearchEngine.h b/DataStructures/SearchEngine.h index 2208f6932..a73a98e77 100644 --- a/DataStructures/SearchEngine.h +++ b/DataStructures/SearchEngine.h @@ -256,8 +256,10 @@ public: if( (packedPath1.back() == packedPath2.back()) && phantomNodePair.targetPhantom.isBidirected() ) { // INFO("both paths end in same direction on bidirected edge, make sure start only start with : " << packedPath1.back()); - searchFrom1stStartNode ^= (packedPath1.back() != phantomNodePair.targetPhantom.edgeBasedNode); - searchFrom2ndStartNode ^= (packedPath1.back() != phantomNodePair.targetPhantom.edgeBasedNode+1); + + NodeID lastNodeID = packedPath2.back(); + searchFrom1stStartNode &= !(lastNodeID == phantomNodePair.targetPhantom.edgeBasedNode+1); + searchFrom2ndStartNode &= !(lastNodeID == phantomNodePair.targetPhantom.edgeBasedNode); // INFO("Next search from node " << phantomNodePair.targetPhantom.edgeBasedNode << ": " << (searchFrom1stStartNode ? "yes" : "no") ); // INFO("Next search from node " << phantomNodePair.targetPhantom.edgeBasedNode+1 << ": " << (searchFrom2ndStartNode ? "yes" : "no") ); }