From fa042f65784c3b2aaae38fbb8ea4dc0cfcabc249 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 31 Jan 2010 16:29:20 -0600 Subject: [PATCH] Make sure we're not reading 0 bits in the lzw decompression loop -- this causes a hang --- basis/compression/lzw/lzw.factor | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/basis/compression/lzw/lzw.factor b/basis/compression/lzw/lzw.factor index e017636009..340e455291 100644 --- a/basis/compression/lzw/lzw.factor +++ b/basis/compression/lzw/lzw.factor @@ -26,9 +26,11 @@ TUPLE: gif-lzw < lzw ; dup end-of-information-code>> 1 + initial-uncompress-table >>table dup initial-code-size>> >>code-size ; +ERROR: code-size-zero ; + : ( input code-size class -- obj ) new - swap >>code-size + swap [ code-size-zero ] when-zero >>code-size dup code-size>> >>initial-code-size dup code-size>> 1 - 2^ >>clear-code dup clear-code>> 1 + >>end-of-information-code