From d42b054d34e4207843aa3f797193dfa74dab0c24 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 30 Aug 2008 06:32:20 +0000 Subject: *** empty log message *** --- README | 2 +- lzf_c.c | 43 +++++++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/README b/README index 35cd059..b5379a3 100644 --- a/README +++ b/README @@ -24,6 +24,6 @@ DESCRIPTION AUTHOR This library was written by Marc Lehmann (See also - http://liblzf.plan9.de/). + http://software.schmorp.de/pkg/liblzf). diff --git a/lzf_c.c b/lzf_c.c index 848aa22..63cf26a 100644 --- a/lzf_c.c +++ b/lzf_c.c @@ -222,37 +222,40 @@ lzf_compress (const void *const in_data, unsigned int in_len, } *op++ = off; + lit = 0; op++; /* start run */ + + ip += len + 1; + + if (expect_false (ip > in_end - 2)) + break; - if (expect_true (ip + len < in_end - 2)) - { #if ULTRA_FAST || VERY_FAST - ip += len; + --ip; # if VERY_FAST && !ULTRA_FAST - --ip; + --ip; # endif - hval = FRST (ip); + hval = FRST (ip); - hval = NEXT (hval, ip); - htab[IDX (hval)] = ip; - ip++; + hval = NEXT (hval, ip); + htab[IDX (hval)] = ip; + ip++; # if VERY_FAST && !ULTRA_FAST + hval = NEXT (hval, ip); + htab[IDX (hval)] = ip; + ip++; +# endif +#else + ip -= len + 1; + + do + { hval = NEXT (hval, ip); htab[IDX (hval)] = ip; ip++; -# endif -#else - do - { - hval = NEXT (hval, ip); - htab[IDX (hval)] = ip; - ip++; - } - while (len--); -#endif } - - lit = 0; op++; /* start run */ + while (len--); +#endif } else { -- cgit v1.2.3