]> gitweb.factorcode.org Git - factor.git/commitdiff
compression.lzw: additional refactoring
authorKeith Lazuka <klazuka@gmail.com>
Sun, 27 Sep 2009 02:09:58 +0000 (22:09 -0400)
committerKeith Lazuka <klazuka@gmail.com>
Mon, 28 Sep 2009 20:01:25 +0000 (16:01 -0400)
basis/compression/lzw/lzw.factor

index 72de6f828cc99a7e06b6d320fe978f8725f8ae5b..e017636009b2f1546ec4f7cf89bba98fc635836e 100644 (file)
@@ -55,11 +55,10 @@ ERROR: not-in-table value ;
 
 GENERIC: code-space-full? ( lzw -- ? )
 
-M: tiff-lzw code-space-full?
-    [ table>> length ] [ code-size>> 2^ 1 - ] bi = ;
+: size-and-limit ( lzw -- m n ) [ table>> length ] [ code-size>> 2^ ] bi ;
 
-M: gif-lzw code-space-full?
-    [ table>> length ] [ code-size>> 2^ ] bi = ;
+M: tiff-lzw code-space-full? size-and-limit 1 - = ;
+M: gif-lzw code-space-full? size-and-limit = ;
 
 : maybe-increment-code-size ( lzw -- lzw )
     dup code-space-full? [ [ 1 + ] change-code-size ] when ;