forked from organicmaps/organicmaps
[search] Fixed retrieval on Mwms without categories section.
This commit is contained in:
parent
cc63232691
commit
60cf672e88
1 changed files with 6 additions and 6 deletions
|
@ -260,6 +260,7 @@ public:
|
|||
template <class ToDo>
|
||||
void ForEachValue(size_t index, ToDo && toDo) const
|
||||
{
|
||||
ASSERT_LESS(index, m_holder.size(), ());
|
||||
for (auto const & value : m_holder[index])
|
||||
toDo(value);
|
||||
}
|
||||
|
@ -385,10 +386,7 @@ void MatchFeaturesInTrie(SearchQueryParams const & params, trie::DefaultIterator
|
|||
TFilter const & filter, ToDo && toDo)
|
||||
{
|
||||
TrieValuesHolder<TFilter> categoriesHolder(filter);
|
||||
if (!MatchCategoriesInTrie(params, trieRoot, categoriesHolder)) {
|
||||
LOG(LERROR, ("Can't find categories."));
|
||||
return;
|
||||
}
|
||||
bool const categoriesMatched = MatchCategoriesInTrie(params, trieRoot, categoriesHolder);
|
||||
|
||||
impl::OffsetIntersecter<TFilter> intersecter(filter);
|
||||
for (size_t i = 0; i < params.m_tokens.size(); ++i)
|
||||
|
@ -397,7 +395,8 @@ void MatchFeaturesInTrie(SearchQueryParams const & params, trie::DefaultIterator
|
|||
{
|
||||
MatchTokenInTrie(params.m_tokens[i], langRoot, intersecter);
|
||||
});
|
||||
categoriesHolder.ForEachValue(i, intersecter);
|
||||
if (categoriesMatched)
|
||||
categoriesHolder.ForEachValue(i, intersecter);
|
||||
intersecter.NextStep();
|
||||
}
|
||||
|
||||
|
@ -407,7 +406,8 @@ void MatchFeaturesInTrie(SearchQueryParams const & params, trie::DefaultIterator
|
|||
{
|
||||
MatchTokenPrefixInTrie(params.m_prefixTokens, langRoot, intersecter);
|
||||
});
|
||||
categoriesHolder.ForEachValue(params.m_tokens.size(), intersecter);
|
||||
if (categoriesMatched)
|
||||
categoriesHolder.ForEachValue(params.m_tokens.size(), intersecter);
|
||||
intersecter.NextStep();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue