Skip to content

Commit e6ff84c

Browse files
Fix decompressor using wrong settings
1 parent f35fdb6 commit e6ff84c

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/bundle.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::{
88
use countio::Counter;
99
use liblzma::{
1010
read::XzDecoder,
11-
stream::{Check, Filters, LzmaOptions, MtStreamBuilder},
11+
stream::{Check, Filters, LzmaOptions, MtStreamBuilder, Stream},
1212
write::XzEncoder,
1313
};
1414
use log::*;
@@ -39,6 +39,11 @@ fn get_lzma_encoder<W: Write>(writer: &mut W, level: u32) -> Result<XzEncoder<&m
3939
Ok(XzEncoder::new_stream(writer, stream))
4040
}
4141

42+
fn get_lzma_decoder<R: Read>(reader: &mut R) -> Result<XzDecoder<&mut R>, Error> {
43+
let stream = Stream::new_auto_decoder(u64::MAX, 0)?;
44+
Ok(XzDecoder::new_stream(reader, stream))
45+
}
46+
4247
fn read_u32<T: Read>(reader: &mut T) -> Result<u32, Error> {
4348
let mut buf = [0; 4];
4449
reader.read_exact(&mut buf)?;
@@ -355,7 +360,7 @@ struct Level {
355360
}
356361
impl Level {
357362
fn read<R: Read + BufRead>(reader: &mut R) -> Result<Self, Error> {
358-
let mut reader = Counter::new(BufReader::new(XzDecoder::new_parallel(reader)));
363+
let mut reader = Counter::new(BufReader::new(get_lzma_decoder(reader)?));
359364
let header = LevelHeader::read(&mut reader)?;
360365

361366
let mut files = Vec::with_capacity(header.num_files as usize);

0 commit comments

Comments
 (0)