ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/liblzf/lzf_c.c
(Generate patch)

Comparing liblzf/lzf_c.c (file contents):
Revision 1.18 by root, Tue Nov 13 08:17:38 2007 UTC vs.
Revision 1.19 by root, Tue Nov 13 08:38:35 2007 UTC

158 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen; 158 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen;
159 159
160 if (expect_false (op + lit + 1 + 3 >= out_end)) 160 if (expect_false (op + lit + 1 + 3 >= out_end))
161 return 0; 161 return 0;
162 162
163 if (lit) 163 if (expect_false (lit))
164 { 164 {
165 *op++ = lit - 1; 165 *op++ = lit - 1;
166 lit = -lit; 166 lit = -lit;
167 do 167 do
168 *op++ = ip[lit]; 168 *op++ = ip[lit];
169 while (++lit); 169 while (expect_false (++lit));
170 } 170 }
171 171
172 for (;;) 172 for (;;)
173 { 173 {
174 if (expect_true (ip < in_end - 2 - 8 && maxlen > 8)) 174 if (expect_true (maxlen > 16))
175 { 175 {
176 len++; if (ref [len] != ip [len]) break;
177 len++; if (ref [len] != ip [len]) break;
178 len++; if (ref [len] != ip [len]) break;
179 len++; if (ref [len] != ip [len]) break;
180 len++; if (ref [len] != ip [len]) break;
181 len++; if (ref [len] != ip [len]) break;
182 len++; if (ref [len] != ip [len]) break;
183 len++; if (ref [len] != ip [len]) break;
176 len++; if (ref [len] != ip [len]) break; 184 len++; if (ref [len] != ip [len]) break;
177 len++; if (ref [len] != ip [len]) break; 185 len++; if (ref [len] != ip [len]) break;
178 len++; if (ref [len] != ip [len]) break; 186 len++; if (ref [len] != ip [len]) break;
179 len++; if (ref [len] != ip [len]) break; 187 len++; if (ref [len] != ip [len]) break;
180 len++; if (ref [len] != ip [len]) break; 188 len++; if (ref [len] != ip [len]) break;
246 return 0; 254 return 0;
247 255
248 *op++ = MAX_LIT - 1; 256 *op++ = MAX_LIT - 1;
249 257
250#ifdef lzf_movsb 258#ifdef lzf_movsb
251 ip -= lit; 259 ip -= MAX_LIT;
252 lzf_movsb (op, ip, lit); 260 lzf_movsb (op, ip, lit);
253#else 261#else
254 lit = -lit; 262 lit = -lit;
255 do 263 do
256 *op++ = ip[lit]; 264 *op++ = ip[lit];

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines