impl SmackerTree16Builder {
fn get_tree16(&mut self, br: &mut BitReader, tree: &mut SmackerTree16, depth: usize) -> DecoderResult<u32> {
validate!(tree.tree.len() < self.nsyms);
+ validate!(depth <= 32);
if !br.read_bool()? {
let lo = br.read_tree8(&self.tree_lo)?;
let hi = br.read_tree8(&self.tree_hi)?;
let mut esc: [u32; 3] = [0; 3];
for i in 0..esc.len() {
- esc[i] = br.read(16)? as u32;
+ esc[i] = br.read(16)?;
}
let nsyms = (((size + 3) >> 2) + 4) as usize;
let mut pred: [u8; 2] = [ pred1, pred0 ];
for ch in 0..2 { dst[ch] = pred[ch]; }
for i in 2..unp_size {
- let diff = br.read_tree8(&trees[i & 1])? as u8;
+ let diff = br.read_tree8(&trees[i & 1])?;
pred[i & 1] = pred[i & 1].wrapping_add(diff);
dst[i] = pred[i & 1];
}
let mut pred = br.read(8)? as u8;
dst[0] = pred;
for i in 1..unp_size {
- let diff = br.read_tree8(&tree)? as u8;
+ let diff = br.read_tree8(&tree)?;
pred = pred.wrapping_add(diff);
dst[i] = pred;
}