Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Gorshenin <y@maps.me>2016-05-27 11:12:22 +0300
committerYuri Gorshenin <y@maps.me>2016-05-27 11:31:21 +0300
commit4b89e01e1cdb38b39b7ce4f81e1ce9f05da27903 (patch)
treee523dbb55eea5b52dba7a3fb01892535d514eb3b /search/v2/geocoder.cpp
parent6f84875fb9912ef2d199418605362c1e427db578 (diff)
[search] Fixed crash in postcodes search.
Diffstat (limited to 'search/v2/geocoder.cpp')
-rw-r--r--search/v2/geocoder.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/search/v2/geocoder.cpp b/search/v2/geocoder.cpp
index f61dbf66da..6bfb8859ec 100644
--- a/search/v2/geocoder.cpp
+++ b/search/v2/geocoder.cpp
@@ -222,7 +222,8 @@ void JoinQueryTokens(QueryParams const & params, size_t curToken, size_t endToke
}
else
{
- ASSERT_EQUAL(i, params.m_tokens.size(), ());
+ CHECK_EQUAL(i, params.m_tokens.size(), ());
+ CHECK(!params.m_prefixTokens.empty(), ());
res.append(params.m_prefixTokens.front());
}
@@ -1044,17 +1045,18 @@ void Geocoder::WithPostcodes(TFn && fn)
auto postcodes =
RetrievePostcodeFeatures(*m_context, TokenSlice(m_params, startToken, endToken));
+ MY_SCOPE_GUARD(cleanup, [&]() { m_postcodes.Clear(); });
+
if (!coding::CompressedBitVector::IsEmpty(postcodes))
{
ScopedMarkTokens mark(m_usedTokens, startToken, endToken);
+ m_postcodes.Clear();
m_postcodes.m_startToken = startToken;
m_postcodes.m_endToken = endToken;
m_postcodes.m_features = move(postcodes);
fn();
-
- m_postcodes.Clear();
}
}
}