Fixes the edge-based-graph factory's edge counter serialization.
The counter for original edges is of type `std::size_t`, but we serialized `sizeof(unsigned)` number of bytes out to the `.osrm.edges` file. We should probably check all writes (analogous for reads) and make the count parameter dependent on `sizeof(variable)`. ag '\.write\((.*), sizeof\((.*)\)\);'
This commit is contained in:
parent
b1c84b598f
commit
25fea558ba
@ -310,7 +310,8 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges(
|
||||
}
|
||||
|
||||
// writes a dummy value that is updated later
|
||||
edge_data_file.write((char *)&original_edges_counter, sizeof(unsigned));
|
||||
edge_data_file.write(reinterpret_cast<const char *>(&original_edges_counter),
|
||||
sizeof(original_edges_counter));
|
||||
|
||||
std::vector<OriginalEdgeData> original_edge_data_vector;
|
||||
original_edge_data_vector.reserve(1024 * 1024);
|
||||
@ -475,7 +476,8 @@ void EdgeBasedGraphFactory::GenerateEdgeExpandedEdges(
|
||||
FlushVectorToStream(edge_data_file, original_edge_data_vector);
|
||||
|
||||
edge_data_file.seekp(std::ios::beg);
|
||||
edge_data_file.write((char *)&original_edges_counter, sizeof(unsigned));
|
||||
edge_data_file.write(reinterpret_cast<char *>(&original_edges_counter),
|
||||
sizeof(original_edges_counter));
|
||||
|
||||
util::SimpleLogger().Write() << "Generated " << m_edge_based_node_list.size()
|
||||
<< " edge based nodes";
|
||||
|
Loading…
Reference in New Issue
Block a user