diff --git a/data/World.mwm b/data/World.mwm index 07afcd68b0..e6e529ef62 100644 Binary files a/data/World.mwm and b/data/World.mwm differ diff --git a/data/WorldCoasts.mwm b/data/WorldCoasts.mwm index d93b6f7481..799ad56be6 100644 Binary files a/data/WorldCoasts.mwm and b/data/WorldCoasts.mwm differ diff --git a/data/minsk-pass.mwm b/data/minsk-pass.mwm index 43813ebd63..8dc516e89c 100644 Binary files a/data/minsk-pass.mwm and b/data/minsk-pass.mwm differ diff --git a/generator/dumper.cpp b/generator/dumper.cpp index b1feeae463..881a3d2c4a 100644 --- a/generator/dumper.cpp +++ b/generator/dumper.cpp @@ -203,8 +203,7 @@ namespace feature trie::ForEachRef(*trieRoot, f, strings::UniString()); f.Finish(); - auto freqTokenPairs = f.m_tokens; - for (size_t i = 0; i < min(maxTokensToShow, freqTokenPairs.size()); ++i) + for (size_t i = 0; i < min(maxTokensToShow, f.m_tokens.size()); ++i) { auto const & s = f.m_tokens[i].second; cout << f.m_tokens[i].first << " " << strings::ToUtf8(s) << endl; diff --git a/indexer/index_builder.cpp b/indexer/index_builder.cpp index ccf1876ec1..b1a4428155 100644 --- a/indexer/index_builder.cpp +++ b/indexer/index_builder.cpp @@ -8,7 +8,7 @@ namespace indexer { -bool BuildIndexFromDataFile(string const & datFile, string const & tmpFile) + bool BuildIndexFromDataFile(string const & datFile, string const & tmpFile) { try { diff --git a/indexer/indexer_tests/succinct_trie_test.cpp b/indexer/indexer_tests/succinct_trie_test.cpp index 5381cd4b00..82ddc35f1d 100644 --- a/indexer/indexer_tests/succinct_trie_test.cpp +++ b/indexer/indexer_tests/succinct_trie_test.cpp @@ -63,6 +63,19 @@ struct EmptyValueList void Append(int) {} }; +struct EmptyValueReader +{ + using ValueType = unsigned char; + + EmptyValueReader() = default; + + template + void operator()(SourceT &, ValueType & value) const + { + value = 0; + } +}; + struct SimpleValueReader { public: @@ -147,9 +160,9 @@ UNIT_TEST(SuccinctTrie_Serialization_Smoke1) MemReader memReader(buf.data(), buf.size()); - using TEmptyValue = trie::EmptyValueReader::ValueType; + using TEmptyValue = EmptyValueReader::ValueType; - auto trieRoot = trie::ReadSuccinctTrie(memReader, trie::EmptyValueReader()); + auto trieRoot = trie::ReadSuccinctTrie(memReader, EmptyValueReader()); TEST(trieRoot, ()); } @@ -166,7 +179,7 @@ UNIT_TEST(SuccinctTrie_Serialization_Smoke2) MemReader memReader(buf.data(), buf.size()); - using TEmptyValue = trie::EmptyValueReader::ValueType; + using TEmptyValue = EmptyValueReader::ValueType; auto trieRoot = trie::ReadSuccinctTrie(memReader, SimpleValueReader()); TEST(trieRoot, ()); @@ -188,7 +201,7 @@ UNIT_TEST(SuccinctTrie_Iterator) MemReader memReader(buf.data(), buf.size()); - using TEmptyValue = trie::EmptyValueReader::ValueType; + using TEmptyValue = EmptyValueReader::ValueType; auto trieRoot = trie::ReadSuccinctTrie(memReader, SimpleValueReader()); TEST(trieRoot, ()); @@ -216,7 +229,7 @@ UNIT_TEST(SuccinctTrie_MoveToString) BuildFromSimpleValueList(memWriter, data); MemReader memReader(buf.data(), buf.size()); - using TEmptyValue = trie::EmptyValueReader::ValueType; + using TEmptyValue = EmptyValueReader::ValueType; auto trieRoot = trie::ReadSuccinctTrie(memReader, SimpleValueReader()); diff --git a/indexer/trie.hpp b/indexer/trie.hpp index ae7efd0af0..40031360cb 100644 --- a/indexer/trie.hpp +++ b/indexer/trie.hpp @@ -8,12 +8,12 @@ namespace trie { -typedef uint32_t TrieChar; +using TrieChar = uint32_t; // 95 is a good value for the default baseChar, since both small and capital latin letters // are less than +/- 32 from it and thus can fit into supershort edge. // However 0 is used because the first byte is actually language id. -static uint32_t const DEFAULT_CHAR = 0; +uint32_t constexpr kDefaultChar = 0; template class Iterator @@ -32,40 +32,12 @@ public: buffer_vector m_edge; TValueList m_valueList; - virtual ~Iterator() {} + virtual ~Iterator() = default; virtual unique_ptr> Clone() const = 0; virtual unique_ptr> GoToEdge(size_t i) const = 0; }; -struct EmptyValueReader -{ - typedef unsigned char ValueType; - - EmptyValueReader() = default; - - template - void operator()(SourceT &, ValueType & value) const - { - value = 0; - } -}; - -template -struct FixedSizeValueReader -{ - struct ValueType - { - unsigned char m_data[N]; - }; - - template - void operator()(SourceT & src, ValueType & value) const - { - src.Read(&value.m_data[0], N); - } -}; - template void ForEachRef(Iterator const & it, TF && f, TString const & s) { diff --git a/indexer/trie_builder.hpp b/indexer/trie_builder.hpp index 7112e6b08d..61b1254307 100644 --- a/indexer/trie_builder.hpp +++ b/indexer/trie_builder.hpp @@ -235,7 +235,7 @@ void Build(TSink & sink, TSerializer const & serializer, TIter const beg, TIter using TNodeInfo = NodeInfo; vector nodes; - nodes.emplace_back(sink.Pos(), DEFAULT_CHAR); + nodes.emplace_back(sink.Pos(), kDefaultChar); TTrieString prevKey; @@ -270,7 +270,7 @@ void Build(TSink & sink, TSerializer const & serializer, TIter const beg, TIter PopNodes(sink, serializer, nodes, nodes.size() - 1); // Write the root. - WriteNodeReverse(sink, serializer, DEFAULT_CHAR /* baseChar */, nodes.back(), true /* isRoot */); + WriteNodeReverse(sink, serializer, kDefaultChar /* baseChar */, nodes.back(), true /* isRoot */); } } // namespace trie diff --git a/indexer/trie_reader.hpp b/indexer/trie_reader.hpp index 6e36988ab4..230dd9b14c 100644 --- a/indexer/trie_reader.hpp +++ b/indexer/trie_reader.hpp @@ -152,7 +152,7 @@ private: template unique_ptr> ReadTrie(TReader const & reader, TSerializer const & serializer) { - return make_unique>(reader, DEFAULT_CHAR, serializer); + return make_unique>(reader, kDefaultChar, serializer); } } // namespace trie