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:
authorVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2016-08-03 10:14:29 +0300
committerVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2016-08-04 08:05:38 +0300
commit6cf3bf60339f91c133755e0b1a46b69583ae9091 (patch)
treeca5940deb2e5a2c502004c19839deedcd246238f /indexer/feature_altitude.hpp
parentc8d53fa85cc413f6a1c3dfbdb1bf15a71792f265 (diff)
Review fixes.
Diffstat (limited to 'indexer/feature_altitude.hpp')
-rw-r--r--indexer/feature_altitude.hpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/indexer/feature_altitude.hpp b/indexer/feature_altitude.hpp
index 755ecb0be3..ceca72aa9f 100644
--- a/indexer/feature_altitude.hpp
+++ b/indexer/feature_altitude.hpp
@@ -83,24 +83,33 @@ public:
template <class TSink>
void Serialize(TAltitude minAltitude, TSink & sink) const
{
- vector<uint32_t> deviations;
- PrepareSerializationData(minAltitude, deviations);
+ vector<uint32_t> deltas;
+ PrepareSerializationDate(minAltitude, deltas);
BitWriter<TSink> bits(sink);
- for (auto const d : deviations)
- coding::DeltaCoder::Encode(bits, d);
+ for (auto const d : deltas)
+ coding::DeltaCoder::Encode(bits, d + 1 /* making it greater than zero */);
}
template <class TSource>
bool Deserialize(TAltitude minAltitude, size_t pointCount, TSource & src)
{
- vector<uint32_t> deviations(pointCount);
+ vector<uint32_t> deltas(pointCount);
BitReader<TSource> bits(src);
for (size_t i = 0; i < pointCount; ++i)
- deviations[i] = coding::DeltaCoder::Decode(bits);
-
- return FillAltitudesByDeserializedDate(minAltitude, deviations);
+ {
+ uint32_t const decoded = coding::DeltaCoder::Decode(bits);
+ if (decoded == 0)
+ {
+ ASSERT(false, (i));
+ m_altitudes.clear();
+ return false;
+ }
+ deltas[i] = decoded - 1 /* recovering value */;
+ }
+
+ return FillAltitudesByDeserializedDate(minAltitude, deltas);
}
/// \note |m_altitudes| is a vector of feature point altitudes. There's two possibilities:
@@ -110,7 +119,7 @@ public:
TAltitudes m_altitudes;
private:
- void PrepareSerializationData(TAltitude minAltitude, vector<uint32_t> & deviations) const;
- bool FillAltitudesByDeserializedDate(TAltitude minAltitude, vector<uint32_t> const & deviations);
+ void PrepareSerializationDate(TAltitude minAltitude, vector<uint32_t> & deltas) const;
+ bool FillAltitudesByDeserializedDate(TAltitude minAltitude, vector<uint32_t> const & deltas);
};
} // namespace feature