Correct data entry for the empty string.

Rename name_offsets to name_lengths, because that makes more sense.
This commit is contained in:
Daniel Patterson 2015-12-13 11:02:55 -08:00
parent 68c01d09bb
commit 6914d26187
3 changed files with 9 additions and 9 deletions

View File

@ -57,8 +57,8 @@ ExtractionContainers::ExtractionContainers()
{ {
// Check if stxxl can be instantiated // Check if stxxl can be instantiated
stxxl::vector<unsigned> dummy_vector; stxxl::vector<unsigned> dummy_vector;
name_char_data.push_back('\0'); // Insert the empty string, it has no data and is zero length
name_offsets.push_back(1); name_lengths.push_back(0);
} }
ExtractionContainers::~ExtractionContainers() ExtractionContainers::~ExtractionContainers()
@ -68,7 +68,7 @@ ExtractionContainers::~ExtractionContainers()
all_nodes_list.clear(); all_nodes_list.clear();
all_edges_list.clear(); all_edges_list.clear();
name_char_data.clear(); name_char_data.clear();
name_offsets.clear(); name_lengths.clear();
restrictions_list.clear(); restrictions_list.clear();
way_start_end_id_list.clear(); way_start_end_id_list.clear();
} }
@ -121,13 +121,13 @@ void ExtractionContainers::WriteNames(const std::string& names_file_name) const
unsigned total_length = 0; unsigned total_length = 0;
for (const unsigned &name_offset : name_offsets) for (const unsigned &name_length : name_lengths)
{ {
total_length += name_offset; total_length += name_length;
} }
// builds and writes the index // builds and writes the index
RangeTable<> name_index_range(name_offsets); RangeTable<> name_index_range(name_lengths);
name_file_stream << name_index_range; name_file_stream << name_index_range;
name_file_stream.write((char *)&total_length, sizeof(unsigned)); name_file_stream.write((char *)&total_length, sizeof(unsigned));

View File

@ -71,7 +71,7 @@ class ExtractionContainers
STXXLNodeVector all_nodes_list; STXXLNodeVector all_nodes_list;
STXXLEdgeVector all_edges_list; STXXLEdgeVector all_edges_list;
stxxl::vector<char> name_char_data; stxxl::vector<char> name_char_data;
std::vector<unsigned> name_offsets; std::vector<unsigned> name_lengths;
STXXLRestrictionsVector restrictions_list; STXXLRestrictionsVector restrictions_list;
STXXLWayIDStartEndVector way_start_end_id_list; STXXLWayIDStartEndVector way_start_end_id_list;
std::unordered_map<OSMNodeID, NodeID> external_to_internal_node_id_map; std::unordered_map<OSMNodeID, NodeID> external_to_internal_node_id_map;

View File

@ -153,7 +153,7 @@ void ExtractorCallbacks::ProcessWay(const osmium::Way &input_way, const Extracti
// Get the unique identifier for the street name // Get the unique identifier for the street name
const auto &string_map_iterator = string_map.find(parsed_way.name); const auto &string_map_iterator = string_map.find(parsed_way.name);
unsigned name_id = external_memory.name_offsets.size(); unsigned name_id = external_memory.name_lengths.size();
if (string_map.end() == string_map_iterator) if (string_map.end() == string_map_iterator)
{ {
unsigned name_length = 0; unsigned name_length = 0;
@ -167,7 +167,7 @@ void ExtractorCallbacks::ProcessWay(const osmium::Way &input_way, const Extracti
external_memory.name_char_data.push_back(c); external_memory.name_char_data.push_back(c);
name_length++; name_length++;
} }
external_memory.name_offsets.push_back(name_length); external_memory.name_lengths.push_back(name_length);
string_map.insert(std::make_pair(parsed_way.name, name_id)); string_map.insert(std::make_pair(parsed_way.name, name_id));
} }
else else