diff --git a/Server/DataStructures/InternalDataFacade.h b/Server/DataStructures/InternalDataFacade.h index 8d28d8c69..33f251bd7 100644 --- a/Server/DataStructures/InternalDataFacade.h +++ b/Server/DataStructures/InternalDataFacade.h @@ -114,13 +114,17 @@ private: SimpleLogger().Write(logDEBUG) << "Loading node data"; NodeInfo current_node; - while(!nodes_input_stream.eof()) { + unsigned number_of_coordinates = 0; + nodes_input_stream.read( + (char *)&number_of_coordinates, + sizeof(unsigned) + ); + m_coordinate_list.resize(number_of_coordinates); + for(unsigned i = 0; i < number_of_coordinates; ++i) { nodes_input_stream.read((char *)¤t_node, sizeof(NodeInfo)); - m_coordinate_list.push_back( - FixedPointCoordinate( + m_coordinate_list[i] = FixedPointCoordinate( current_node.lat, current_node.lon - ) ); } std::vector(m_coordinate_list).swap(m_coordinate_list); diff --git a/createHierarchy.cpp b/createHierarchy.cpp index 08eea1b3a..e771b6980 100644 --- a/createHierarchy.cpp +++ b/createHierarchy.cpp @@ -212,7 +212,12 @@ int main (int argc, char *argv[]) { SimpleLogger().Write() << "writing node map ..."; std::ofstream mapOutFile(nodeOut.c_str(), std::ios::binary); - mapOutFile.write((char *)&(internalToExternalNodeMapping[0]), internalToExternalNodeMapping.size()*sizeof(NodeInfo)); + const unsigned size_of_mapping = internalToExternalNodeMapping.size(); + mapOutFile.write((char *)&size_of_mapping, sizeof(unsigned)); + mapOutFile.write( + (char *)&(internalToExternalNodeMapping[0]), + size_of_mapping*sizeof(NodeInfo) + ); mapOutFile.close(); std::vector().swap(internalToExternalNodeMapping);