fix missized local have bitset
This commit is contained in:
parent
da406714ff
commit
8bd2c925a6
@ -285,7 +285,7 @@ std::vector<ChunkPicker::ContentChunkR> ChunkPicker::updateChunkRequests(
|
||||
const auto* lhb = o.try_get<ObjComp::F::LocalHaveBitset>();
|
||||
|
||||
// if we dont have anything, this might not exist yet
|
||||
BitSet chunk_candidates = lhb == nullptr ? BitSet{total_chunks} : lhb->have;
|
||||
BitSet chunk_candidates = lhb == nullptr ? BitSet{total_chunks} : (lhb->have.size_bits() >= total_chunks ? lhb->have : BitSet{total_chunks});
|
||||
|
||||
if (!other_have.have_all) {
|
||||
// AND is the same as ~(~A | ~B)
|
||||
|
@ -573,7 +573,7 @@ bool SHA1_NGCFT1::onEvent(const ObjectStore::Events::ObjectUpdate& e) {
|
||||
{ // next, create chuck cache and check for existing data
|
||||
auto& transfer_stats = e.e.get_or_emplace<ObjComp::Ephemeral::File::TransferStats>();
|
||||
auto& lhb = e.e.get_or_emplace<ObjComp::F::LocalHaveBitset>();
|
||||
if (lhb.have.size_bytes() < info.chunks.size()/8) {
|
||||
if (lhb.have.size_bits() < info.chunks.size()) {
|
||||
lhb.have = BitSet{info.chunks.size()};
|
||||
}
|
||||
auto& cc = e.e.emplace<Components::FT1ChunkSHA1Cache>();
|
||||
@ -1027,7 +1027,7 @@ bool SHA1_NGCFT1::onEvent(const Events::NGCFT1_recv_done& e) {
|
||||
|
||||
if (!o.all_of<ObjComp::F::TagLocalHaveAll>()) {
|
||||
{
|
||||
auto& lhb = o.get_or_emplace<ObjComp::F::LocalHaveBitset>(info.chunks.size());
|
||||
auto& lhb = o.get_or_emplace<ObjComp::F::LocalHaveBitset>(BitSet{info.chunks.size()});
|
||||
for (const auto inner_chunk_index : transfer.getChunk().chunk_indices) {
|
||||
if (lhb.have[inner_chunk_index]) {
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user