diff --git a/src/index/IndexImpl.Text.cpp b/src/index/IndexImpl.Text.cpp index d603732152..26873e7bfe 100644 --- a/src/index/IndexImpl.Text.cpp +++ b/src/index/IndexImpl.Text.cpp @@ -574,15 +574,14 @@ IdTable IndexImpl::readWordCl( const TextBlockMetaData& tbmd, const ad_utility::AllocatorWithLimit& allocator) const { IdTable idTable{3, allocator}; - vector cids = - textIndexReadWrite::readGapComprList( - tbmd._cl._nofElements, tbmd._cl._startContextlist, - static_cast(tbmd._cl._startWordlist - - tbmd._cl._startContextlist), - textIndexFile_, &TextRecordIndex::make); + vector cids = textIndexReadWrite::readGapComprList( + tbmd._cl._nofElements, tbmd._cl._startContextlist, + static_cast(tbmd._cl._startWordlist - tbmd._cl._startContextlist), + textIndexFile_, [](uint64_t id) { + return Id::makeFromTextRecordIndex(TextRecordIndex::make(id)); + }); idTable.resize(cids.size()); - ql::ranges::transform(cids, idTable.getColumn(0).begin(), - &Id::makeFromTextRecordIndex); + ql::ranges::copy(cids, idTable.getColumn(0).begin()); ql::ranges::copy( textIndexReadWrite::readFreqComprList( tbmd._cl._nofElements, tbmd._cl._startWordlist, @@ -607,15 +606,15 @@ IdTable IndexImpl::readWordEntityCl( const TextBlockMetaData& tbmd, const ad_utility::AllocatorWithLimit& allocator) const { IdTable idTable{3, allocator}; - vector cids = - textIndexReadWrite::readGapComprList( - tbmd._entityCl._nofElements, tbmd._entityCl._startContextlist, - static_cast(tbmd._entityCl._startWordlist - - tbmd._entityCl._startContextlist), - textIndexFile_, &TextRecordIndex::make); + vector cids = textIndexReadWrite::readGapComprList( + tbmd._entityCl._nofElements, tbmd._entityCl._startContextlist, + static_cast(tbmd._entityCl._startWordlist - + tbmd._entityCl._startContextlist), + textIndexFile_, [](uint64_t id) { + return Id::makeFromTextRecordIndex(TextRecordIndex::make(id)); + }); idTable.resize(cids.size()); - ql::ranges::transform(cids, idTable.getColumn(0).begin(), - &Id::makeFromTextRecordIndex); + ql::ranges::copy(cids, idTable.getColumn(0).begin()); ql::ranges::copy( textIndexReadWrite::readFreqComprList( tbmd._entityCl._nofElements, tbmd._entityCl._startWordlist, diff --git a/src/index/TextIndexReadWrite.h b/src/index/TextIndexReadWrite.h index beca9f4d56..f7ef5f681d 100644 --- a/src/index/TextIndexReadWrite.h +++ b/src/index/TextIndexReadWrite.h @@ -128,8 +128,8 @@ vector readGapComprList(size_t nofElements, off_t from, size_t nofBytes, vector result; result.reserve(nofElements); From previous = 0; - for (size_t i = 0; i < gapEncodedVector.size(); ++i) { - previous += gapEncodedVector[i]; + for (auto gap : gapEncodedVector) { + previous += gap; result.push_back(transformer(previous)); } LOG(DEBUG) << "Done reading gap-encoded list. Size: " << result.size()