about summary refs log tree commit diff
path: root/gifed/src/block
diff options
context:
space:
mode:
Diffstat (limited to 'gifed/src/block')
-rw-r--r--gifed/src/block/indexedimage.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/gifed/src/block/indexedimage.rs b/gifed/src/block/indexedimage.rs
index 8742901..1868382 100644
--- a/gifed/src/block/indexedimage.rs
+++ b/gifed/src/block/indexedimage.rs
@@ -1,4 +1,4 @@
-use weezl::encode::Encoder;
+use weezl::{encode::Encoder, LzwError};
 
 use crate::{reader::DecodeError, EncodeError};
 
@@ -129,8 +129,11 @@ impl CompressedImage {
 		let data: Vec<u8> = blocks.into_iter().map(<_>::into_iter).flatten().collect();
 
 		//TODO: remove unwrap
-		let mut decompressor = weezl::decode::Decoder::new(weezl::BitOrder::Lsb, lzw_code_size);
-		let indicies = decompressor.decode(&data).unwrap();
+		let mut decompressor = weezl::decode::Decoder::new(weezl::BitOrder::Msb, lzw_code_size);
+		let indicies = match decompressor.decode(&data) {
+			Err(LzwError::InvalidCode) => Err(DecodeError::LzwInvalidCode),
+			Ok(o) => Ok(o),
+		}?;
 
 		Ok(IndexedImage {
 			image_descriptor,