[search] Fixed search path construction algorithm.

This commit is contained in:
Yuri Gorshenin 2016-01-15 16:03:00 +03:00 committed by Sergey Yershov
parent ede0d248e9
commit 2e155b28c2

View file

@ -56,22 +56,18 @@ bool GetPath(uint32_t id, vector<FeaturesLayer const *> const & layers, TParentG
IntersectionResult & result)
{
result.Clear();
size_t level = 0;
TParentGraph::const_iterator it;
do
{
ASSERT_LESS(level, layers.size(), ());
result.Set(layers[level]->m_type, id);
if (level >= parent.size())
return true;
auto const it = parent.find(id);
if (it == parent.cend())
return false;
id = it->second;
++level;
} while (true);
it = parent.find(id);
if (it != parent.cend())
id = it->second;
} while (level < layers.size() && it != parent.cend());
return level == layers.size();
}
} // namespace