bit map: allow creating, but not accessing, zero-length bit maps
This commit is contained in:
parent
49fdd9617b
commit
0ad402149e
|
@ -64,11 +64,20 @@ impl Map {
|
|||
}
|
||||
|
||||
pub fn from_raw(bits: Vec<u64>, size: usize, padded: bool) -> Map {
|
||||
Map {
|
||||
length: (bits.len() * 64 + (size - 1)) / size,
|
||||
bit_size: size,
|
||||
bits,
|
||||
padded,
|
||||
if size == 0 {
|
||||
Map {
|
||||
length: 0,
|
||||
bit_size: size,
|
||||
bits,
|
||||
padded,
|
||||
}
|
||||
} else {
|
||||
Map {
|
||||
length: (bits.len() * 64 + (size - 1)) / size,
|
||||
bit_size: size,
|
||||
bits,
|
||||
padded,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,6 +90,7 @@ impl Map {
|
|||
}
|
||||
|
||||
fn get_bit_offset(&self, i: usize) -> usize {
|
||||
assert!(self.length != 0);
|
||||
let padding = if self.padded {
|
||||
i / (64 / self.bit_size) * (64 % self.bit_size)
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue