diff options
| author | root <root> | 2007-11-13 11:30:37 +0000 | 
|---|---|---|
| committer | root <root> | 2007-11-13 11:30:37 +0000 | 
| commit | 110fdc6e441d5e2ef11229486534db0f5e36e87d (patch) | |
| tree | 8c204af427594f94210c5a1dbf02aaf35748a63c | |
| parent | d73fdbeb9a5b1d65e82c22411d76fc117ad67296 (diff) | |
*** empty log message ***
| -rw-r--r-- | Changes | 1 | ||||
| -rw-r--r-- | lzfP.h | 4 | ||||
| -rw-r--r-- | lzf_c.c | 29 | 
3 files changed, 17 insertions, 17 deletions
| @@ -11,6 +11,7 @@            (amd64 and core 2 duo, ymmv). thanks a lot for the competition :)          - undo inline assembly, it is no longer helpful.          - no changes to the decompressor. +        - use a HLOG of 16 by default now (formerly 15).  2.1  Fri Nov  2 13:34:42 CET 2007  	- switched to a 2-clause bsd license with GPL exception. @@ -49,10 +49,10 @@   * the difference between 15 and 14 is very small   * for small blocks (and 14 is usually a bit faster).   * For a low-memory/faster configuration, use HLOG == 13; - * For best compression, use 15 or 16 (or more). + * For best compression, use 15 or 16 (or more, up to 23).   */  #ifndef HLOG -# define HLOG 15 +# define HLOG 16  #endif  /* @@ -237,32 +237,31 @@ lzf_compress (const void *const in_data, unsigned int in_len,              }            while (len--);  #endif +            lit = 0; op++; /* start run */ -          continue;          } +      else +        { +          /* one more literal byte we must copy */ +          if (expect_false (op >= out_end)) +            return 0; -      /* one more literal byte we must copy */ - -      if (expect_false (op >= out_end)) -        return 0; - -      lit++; -      *op++ = *ip++; +          lit++; *op++ = *ip++; -      if (expect_false (lit == MAX_LIT)) -        { -          op [- lit - 1] = lit - 1; /* stop run */ -          lit = 0; op++; /* start run */ +          if (expect_false (lit == MAX_LIT)) +            { +              op [- lit - 1] = lit - 1; /* stop run */ +              lit = 0; op++; /* start run */ +            }          }      } -  if (op + 2 >= out_end) +  if (op + 2 > out_end) /* at most 2 bytes can be missing here */      return 0;    while (ip < in_end)      { -      lit++; -      *op++ = *ip++; +      lit++; *op++ = *ip++;      }    op [- lit - 1] = lit - 1; /* end run */ | 
