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>2015-10-09 20:52:52 +0300
committerSergey Yershov <yershov@corp.mail.ru>2016-03-23 16:02:23 +0300
commitf47f4aded0755f169cc7b768804b40ef39eb8c34 (patch)
tree3df20a7258e1ae76d0f85afaf61d2907c7dcbebc /indexer/rank_table.cpp
parentc854f3ea8269ffcd08b4106ab9a0254917540830 (diff)
[search] Added test for opposite endianness.
Diffstat (limited to 'indexer/rank_table.cpp')
-rw-r--r--indexer/rank_table.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/indexer/rank_table.cpp b/indexer/rank_table.cpp
index fa71ca1c2b..4bba203978 100644
--- a/indexer/rank_table.cpp
+++ b/indexer/rank_table.cpp
@@ -128,16 +128,19 @@ public:
uint8_t Get(uint64_t i) const override { return m_coding.Get(i); }
uint64_t Size() const override { return m_coding.Size(); }
RankTable::Version GetVersion() const override { return V0; }
- void Serialize(Writer & writer) override
+ void Serialize(Writer & writer, bool preserveHostEndianness) override
{
static uint64_t const padding = 0;
uint8_t const version = GetVersion();
- uint8_t const flags = IsBigEndian();
+ uint8_t const flags = preserveHostEndianness ? IsBigEndian() : !IsBigEndian();
writer.Write(&version, sizeof(version));
writer.Write(&flags, sizeof(flags));
writer.Write(&padding, 6);
- Freeze(m_coding, writer, "SimpleDenseCoding");
+ if (preserveHostEndianness)
+ Freeze(m_coding, writer, "SimpleDenseCoding");
+ else
+ ReverseFreeze(m_coding, writer, "SimpleDenseCoding");
}
// Loads RankTableV0 from a raw memory region.
@@ -199,7 +202,7 @@ void SerializeRankTable(RankTable & table, FilesContainerW & wcont)
vector<char> buffer;
{
MemWriter<decltype(buffer)> writer(buffer);
- table.Serialize(writer);
+ table.Serialize(writer, true /* hostEndianness */);
}
wcont.Write(buffer, RANKS_FILE_TAG);