}
fn read_gamma(br: &mut BitReader) -> BitReaderResult<u32> {
- let mut ret = 0;
+ let mut ret = 1;
while br.read(1)? != 1 {
ret = (ret << 1) | br.read(1)?;
}
- Ok(ret)
+ Ok(ret - 1)
}
fn read_gammap(br: &mut BitReader) -> BitReaderResult<u32> {
}
impl<'a> IntCodeReader for BitReader<'a> {
+ #[inline(always)]
fn read_code(&mut self, t: UintCodeType) -> BitReaderResult<u32> {
match t {
UintCodeType::UnaryOnes => read_unary(self, 0),