}
fn put_literal(&mut self, val: u8) {
self.buf[self.bpos] = val;
}
fn put_literal(&mut self, val: u8) {
self.buf[self.bpos] = val;
}
fn lz_copy(&mut self, offset: usize, len: usize, dst: &mut [u8]) -> DecompressResult<()> {
let mask = self.buf.len() - 1;
}
fn lz_copy(&mut self, offset: usize, len: usize, dst: &mut [u8]) -> DecompressResult<()> {
let mask = self.buf.len() - 1;
for i in 0..len {
self.buf[(self.bpos + i) & mask] = self.buf[(cstart + i) & mask];
dst[i] = self.buf[(cstart + i) & mask];
}
for i in 0..len {
self.buf[(self.bpos + i) & mask] = self.buf[(cstart + i) & mask];
dst[i] = self.buf[(cstart + i) & mask];
}
///! Decompresses input data into output returning the uncompressed data length.
pub fn uncompress(src: &[u8], dst: &mut [u8]) -> DecompressResult<usize> {
let mut inflate = Self::new();
///! Decompresses input data into output returning the uncompressed data length.
pub fn uncompress(src: &[u8], dst: &mut [u8]) -> DecompressResult<usize> {
let mut inflate = Self::new();
- inflate.decompress_data(src, dst, false)
+ let off = if src.len() > 2 && src[0] == 0x78 && src[1] == 0x9C { 2 } else { 0 };
+ inflate.decompress_data(&src[off..], dst, false)