return (bits[position.first] & ((cell)1 << position.second)) != 0;
}
- cell next_block_after(const cell block, const cell size) {
- return block + size;
- }
-
void set_bitmap_range(cell* bits, const cell address, const cell size) {
std::pair<cell, cell> start = bitmap_deref(address);
- std::pair<cell, cell> end = bitmap_deref(next_block_after(address, size));
+ std::pair<cell, cell> end = bitmap_deref(address + size);
cell start_mask = ((cell)1 << start.second) - 1;
cell end_mask = ((cell)1 << end.second) - 1;
cell clear_bit = rightmost_clear_bit(mask);
return line_block(index * mark_bits_granularity + bit_index +
clear_bit);
- } else {
- // No unmarked blocks on this page. Keep looking
- bit_index = 0;
}
+ // No unmarked blocks on this page. Keep looking
+ bit_index = 0;
}
// No unmarked blocks were found
// Found an marked block on this page. Stop, it's hammer time
cell set_bit = rightmost_set_bit(mask);
return line_block(index * mark_bits_granularity + bit_index + set_bit);
- } else {
- // No marked blocks on this page. Keep looking
- bit_index = 0;
}
+ // No marked blocks on this page. Keep looking
+ bit_index = 0;
}
// No marked blocks were found