From 8342db96e5793b93361032f731defdb8e6f49dcc Mon Sep 17 00:00:00 2001 From: root Date: Fri, 30 Nov 2007 10:34:26 +0000 Subject: *** empty log message *** --- lzf_c.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lzf_c.c') diff --git a/lzf_c.c b/lzf_c.c index 25aabed..0e4d746 100644 --- a/lzf_c.c +++ b/lzf_c.c @@ -159,6 +159,8 @@ lzf_compress (const void *const in_data, unsigned int in_len, unsigned int maxlen = in_end - ip - len; maxlen = maxlen > MAX_REF ? MAX_REF : maxlen; + if (maxlen > 8) maxlen = 8;//D + op [- lit - 1] = lit - 1; /* stop run */ op -= !lit; /* undo run if length is zero */ @@ -262,6 +264,12 @@ lzf_compress (const void *const in_data, unsigned int in_len, while (ip < in_end) { lit++; *op++ = *ip++; + + if (expect_false (lit == MAX_LIT)) + { + op [- lit - 1] = lit - 1; /* stop run */ + lit = 0; op++; /* start run */ + } } op [- lit - 1] = lit - 1; /* end run */ -- cgit v1.2.3