diff --git a/generator/search_index_builder.cpp b/generator/search_index_builder.cpp index f060c40c20..36d42ff271 100644 --- a/generator/search_index_builder.cpp +++ b/generator/search_index_builder.cpp @@ -137,9 +137,12 @@ void GetCategoryTypes(CategoriesHolder const & categories, pair const template struct FeatureNameInserter { - FeatureNameInserter(SynonymsHolder * synonyms, vector> & keyValuePairs, - bool hasStreetType) - : m_synonyms(synonyms), m_keyValuePairs(keyValuePairs), m_hasStreetType(hasStreetType) + FeatureNameInserter(uint32_t index, SynonymsHolder * synonyms, + vector> & keyValuePairs, bool hasStreetType) + : m_val(index) + , m_synonyms(synonyms) + , m_keyValuePairs(keyValuePairs) + , m_hasStreetType(hasStreetType) { } @@ -226,38 +229,22 @@ struct FeatureNameInserter } } + Value m_val; SynonymsHolder * m_synonyms; vector> & m_keyValuePairs; - Value m_val; bool m_hasStreetType = false; }; -template -struct ValueBuilder; - -template <> -struct ValueBuilder -{ - ValueBuilder() = default; - - void MakeValue(FeatureType const & /* f */, uint32_t index, FeatureIndexValue & value) const - { - value.m_featureId = index; - } -}; - template class FeatureInserter { public: FeatureInserter(SynonymsHolder * synonyms, vector> & keyValuePairs, - CategoriesHolder const & catHolder, pair const & scales, - ValueBuilder const & valueBuilder) + CategoriesHolder const & catHolder, pair const & scales) : m_synonyms(synonyms) , m_keyValuePairs(keyValuePairs) , m_categories(catHolder) , m_scales(scales) - , m_valueBuilder(valueBuilder) { } @@ -275,8 +262,8 @@ public: // Init inserter with serialized value. // Insert synonyms only for countries and states (maybe will add cities in future). FeatureNameInserter inserter( - skipIndex.IsCountryOrState(types) ? m_synonyms : nullptr, m_keyValuePairs, hasStreetType); - m_valueBuilder.MakeValue(f, index, inserter.m_val); + index, skipIndex.IsCountryOrState(types) ? m_synonyms : nullptr, m_keyValuePairs, + hasStreetType); string const postcode = f.GetMetadata().Get(feature::Metadata::FMD_POSTCODE); if (!postcode.empty()) @@ -342,8 +329,6 @@ private: CategoriesHolder const & m_categories; pair m_scales; - - ValueBuilder const & m_valueBuilder; }; template @@ -353,14 +338,12 @@ void AddFeatureNameIndexPairs(FeaturesVectorTest const & features, { feature::DataHeader const & header = features.GetHeader(); - ValueBuilder valueBuilder; - unique_ptr synonyms; if (header.GetType() == feature::DataHeader::MapType::World) synonyms.reset(new SynonymsHolder(base::JoinPath(GetPlatform().ResourcesDir(), SYNONYMS_FILE))); features.GetVector().ForEach(FeatureInserter( - synonyms.get(), keyValuePairs, categoriesHolder, header.GetScaleRange(), valueBuilder)); + synonyms.get(), keyValuePairs, categoriesHolder, header.GetScaleRange())); } bool GetStreetIndex(search::MwmContext & ctx, uint32_t featureID, string const & streetName,