diff --git a/Contractor/EdgeBasedGraphFactory.cpp b/Contractor/EdgeBasedGraphFactory.cpp index 18a7c86e7..d35820dd1 100644 --- a/Contractor/EdgeBasedGraphFactory.cpp +++ b/Contractor/EdgeBasedGraphFactory.cpp @@ -146,7 +146,7 @@ void EdgeBasedGraphFactory::Run() { } } ++secondRestrictionIterator; - } while(u == secondRestrictionIterator->fromNode); + } while(secondRestrictionIterator != inputRestrictions.end() && u == secondRestrictionIterator->fromNode); } if(_nodeBasedGraph->EndEdges(v) == _nodeBasedGraph->BeginEdges(v) + 1 && _nodeBasedGraph->GetEdgeData(e1).type != INT_MAX) { EdgeBasedNode currentNode; @@ -194,7 +194,7 @@ void EdgeBasedGraphFactory::Run() { } } ++secondRestrictionIterator; - } while(u == secondRestrictionIterator->fromNode); + } while(secondRestrictionIterator != inputRestrictions.end() && u == secondRestrictionIterator->fromNode); } if( !isTurnRestricted || (isOnlyAllowed && w == onlyToNode) ) { //only add an edge if turn is not prohibited diff --git a/Util/GraphLoader.h b/Util/GraphLoader.h index 75dbfad4b..099d390dd 100644 --- a/Util/GraphLoader.h +++ b/Util/GraphLoader.h @@ -364,7 +364,7 @@ template unsigned readHSGRFromStream(istream &in, vector& nodeList, vector & edgeList) { unsigned numberOfNodes = 0; in.read((char*) & numberOfNodes, sizeof(unsigned)); - nodeList.resize(numberOfNodes); + nodeList.resize(numberOfNodes + 1); NodeT currentNode; for(unsigned nodeCounter = 0; nodeCounter < numberOfNodes; ++nodeCounter ) { in.read((char*) ¤tNode, sizeof(NodeT)); diff --git a/createHierarchy.cpp b/createHierarchy.cpp index d03cc78e4..17b6e37ed 100644 --- a/createHierarchy.cpp +++ b/createHierarchy.cpp @@ -155,6 +155,7 @@ int main (int argc, char *argv[]) { std::vector< ContractionCleanup::Edge > contractedEdges; contractor->GetEdges( contractedEdges ); + delete contractor; ContractionCleanup * cleanup = new ContractionCleanup(n, contractedEdges); contractedEdges.clear(); @@ -183,7 +184,7 @@ int main (int argc, char *argv[]) { numberOfNodes+=1; std::vector< StaticGraph::_StrNode > _nodes; - _nodes.resize( numberOfNodes); + _nodes.resize( numberOfNodes + 1 ); StaticGraph::EdgeIterator edge = 0; StaticGraph::EdgeIterator position = 0;