Review fixes.

This commit is contained in:
Maxim Pimenov 2015-09-17 13:12:14 +03:00 committed by Sergey Yershov
parent 90bde56951
commit 6cbb49c857
2 changed files with 12 additions and 3 deletions

View file

@ -100,7 +100,7 @@ DenseCBV::DenseCBV(vector<uint64_t> const & setBits)
uint64_t maxBit = setBits[0];
for (size_t i = 1; i < setBits.size(); ++i)
maxBit = max(maxBit, setBits[i]);
size_t sz = 1 + maxBit / kBlockSize;
size_t const sz = 1 + maxBit / kBlockSize;
m_bitGroups.resize(sz);
m_popCount = static_cast<uint32_t>(setBits.size());
for (uint64_t pos : setBits)
@ -220,9 +220,13 @@ unique_ptr<CompressedBitVector> CompressedBitVectorBuilder::FromBitGroups(
vector<uint64_t> setBits;
for (size_t i = 0; i < bitGroups.size(); ++i)
{
for (size_t j = 0; j < kBlockSize; ++j)
{
if (((bitGroups[i] >> j) & 1) > 0)
setBits.push_back(kBlockSize * i + j);
}
}
return make_unique<SparseCBV>(setBits);
}

View file

@ -229,15 +229,20 @@ inline void ReadFromPos(TReader const & reader, uint64_t pos, void * p, size_t s
template <typename TPrimitive, class TReader>
inline TPrimitive ReadPrimitiveFromPos(TReader const & reader, uint64_t pos)
{
#ifndef OMIM_OS_LINUX
static_assert(is_trivially_copyable<TPrimitive>::value, "");
#endif
TPrimitive primitive;
ReadFromPos(reader, pos, &primitive, sizeof(primitive));
return SwapIfBigEndian(primitive);
}
template <typename TPrimitive, class TSource>
inline typename enable_if<is_trivially_copyable<TPrimitive>::value, TPrimitive>::type
ReadPrimitiveFromSource(TSource & source)
TPrimitive ReadPrimitiveFromSource(TSource & source)
{
#ifndef OMIM_OS_LINUX
static_assert(is_trivially_copyable<TPrimitive>::value, "");
#endif
TPrimitive primitive;
source.Read(&primitive, sizeof(primitive));
return SwapIfBigEndian(primitive);