Fixes segfault where route over node with highest ID could not be
unpacked.
This commit is contained in:
		
							parent
							
								
									ee64b2f5fd
								
							
						
					
					
						commit
						0cd06be13a
					
				@ -206,20 +206,20 @@ int main (int argc, char *argv[]) {
 | 
				
			|||||||
        _nodes[node].firstEdge = position; //=edge
 | 
					        _nodes[node].firstEdge = position; //=edge
 | 
				
			||||||
        position += edge - lastEdge; //remove
 | 
					        position += edge - lastEdge; //remove
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    ++numberOfNodes;
 | 
				
			||||||
    //Serialize numberOfNodes, nodes
 | 
					    //Serialize numberOfNodes, nodes
 | 
				
			||||||
    edgeOutFile.write((char*) &crc32OfNodeBasedEdgeList, sizeof(unsigned));
 | 
					    edgeOutFile.write((char*) &crc32OfNodeBasedEdgeList, sizeof(unsigned));
 | 
				
			||||||
    edgeOutFile.write((char*) &numberOfNodes, sizeof(unsigned));
 | 
					    edgeOutFile.write((char*) &numberOfNodes, sizeof(unsigned));
 | 
				
			||||||
    edgeOutFile.write((char*) &_nodes[0], sizeof(StaticGraph<EdgeData>::_StrNode)*(numberOfNodes+1));
 | 
					    edgeOutFile.write((char*) &_nodes[0], sizeof(StaticGraph<EdgeData>::_StrNode)*(numberOfNodes));
 | 
				
			||||||
 | 
					 | 
				
			||||||
    //Serialize number of Edges
 | 
					    //Serialize number of Edges
 | 
				
			||||||
    edgeOutFile.write((char*) &position, sizeof(unsigned));
 | 
					    edgeOutFile.write((char*) &position, sizeof(unsigned));
 | 
				
			||||||
 | 
					    --numberOfNodes;
 | 
				
			||||||
    edge = 0;
 | 
					    edge = 0;
 | 
				
			||||||
    int usedEdgeCounter = 0;
 | 
					    int usedEdgeCounter = 0;
 | 
				
			||||||
    StaticGraph<EdgeData>::_StrEdge currentEdge;
 | 
					    StaticGraph<EdgeData>::_StrEdge currentEdge;
 | 
				
			||||||
    for ( StaticGraph<EdgeData>::NodeIterator node = 0; node < numberOfNodes; ++node ) {
 | 
					    for ( StaticGraph<EdgeData>::NodeIterator node = 0; node < numberOfNodes; ++node ) {
 | 
				
			||||||
        for ( StaticGraph<EdgeData>::EdgeIterator i = _nodes[node].firstEdge, e = _nodes[node+1].firstEdge; i != e; ++i ) {
 | 
					        for ( StaticGraph<EdgeData>::EdgeIterator i = _nodes[node].firstEdge, e = _nodes[node+1].firstEdge; i != e; ++i ) {
 | 
				
			||||||
 | 
					            assert(node != cleanedEdgeList[edge].target);
 | 
				
			||||||
            currentEdge.target = cleanedEdgeList[edge].target;
 | 
					            currentEdge.target = cleanedEdgeList[edge].target;
 | 
				
			||||||
            currentEdge.data = cleanedEdgeList[edge].data;
 | 
					            currentEdge.data = cleanedEdgeList[edge].data;
 | 
				
			||||||
            if(currentEdge.data.distance <= 0) {
 | 
					            if(currentEdge.data.distance <= 0) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user