diff options
author | vng <viktor.govako@gmail.com> | 2011-01-15 02:30:04 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:09:56 +0300 |
commit | 5643ba275b89239131430281366d1f429cb41456 (patch) | |
tree | 72f42c87ca7a9e93d4751e5608b55a07892898f4 /indexer/feature_impl.hpp | |
parent | dacd5c9cfbf0d23d3c100bd52212f9f8b027eede (diff) |
Move processing of inner points into ParseGeometry function.
Diffstat (limited to 'indexer/feature_impl.hpp')
-rw-r--r-- | indexer/feature_impl.hpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/indexer/feature_impl.hpp b/indexer/feature_impl.hpp index bcd74e761a..9db296639b 100644 --- a/indexer/feature_impl.hpp +++ b/indexer/feature_impl.hpp @@ -60,7 +60,7 @@ namespace feature points_emitter(vector<m2::PointD> & points, uint32_t count) : m_points(points), m_id(0) { - m_points.reserve(count / 2); + m_points.reserve(count); } void operator() (int64_t id) { @@ -68,6 +68,12 @@ namespace feature } }; + inline void const * ReadPointsSimple( void const * p, size_t count, + vector<m2::PointD> & points) + { + return ReadVarInt64Array(p, count, points_emitter(points, count)); + } + template <class TSource> void ReadPoints(vector<m2::PointD> & points, TSource & src) { @@ -76,7 +82,7 @@ namespace feature char * p = &buffer[0]; src.Read(p, count); - ReadVarInt64Array(p, p + count, points_emitter(points, count)); + ReadVarInt64Array(p, p + count, points_emitter(points, count / 2)); } } @@ -102,6 +108,15 @@ namespace feature detail::WriteCells(cells, sink); } + inline void const * LoadPointsSimple( void const * p, size_t count, + vector<m2::PointD> & points) + { + ASSERT_GREATER ( count, 1, () ); + void const * ret = detail::ReadPointsSimple(p, count, points); + ASSERT_GREATER ( points.size(), 1, () ); + return ret; + } + template <class TSource> void LoadPoints(vector<m2::PointD> & points, TSource & src) { |