From 5a9bee052753ab6c978e60ac2ca331f2ed378aa8 Mon Sep 17 00:00:00 2001 From: Patrick Niklaus Date: Sun, 13 Dec 2015 20:27:54 +0100 Subject: [PATCH] Don't include zero characters in empty names --- extractor/extractor_callbacks.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/extractor/extractor_callbacks.cpp b/extractor/extractor_callbacks.cpp index 719fb5e57..622876f6e 100644 --- a/extractor/extractor_callbacks.cpp +++ b/extractor/extractor_callbacks.cpp @@ -156,17 +156,8 @@ void ExtractorCallbacks::ProcessWay(const osmium::Way &input_way, const Extracti unsigned name_id = external_memory.name_lengths.size(); if (string_map.end() == string_map_iterator) { - unsigned name_length = 0; - for (const char &c : parsed_way.name) - { - // Cap name length at 255 characters - if (name_length == 255u) - { - break; - } - external_memory.name_char_data.push_back(c); - name_length++; - } + auto name_length = std::min(255u, parsed_way.name.size()); + std::copy(parsed_way.name.c_str(), parsed_way.name.c_str() + name_length, std::back_inserter(external_memory.name_char_data)); external_memory.name_lengths.push_back(name_length); string_map.insert(std::make_pair(parsed_way.name, name_id)); }