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.20 by root, Tue Nov 13 08:38:49 2007 UTC

141#endif 141#endif
142 && (off = ip - ref - 1) < MAX_OFF 142 && (off = ip - ref - 1) < MAX_OFF
143 && ip + 4 < in_end 143 && ip + 4 < in_end
144 && ref > (u8 *)in_data 144 && ref > (u8 *)in_data
145#if STRICT_ALIGN 145#if STRICT_ALIGN
146 x x x
146 && ref[0] == ip[0] 147 && ref[0] == ip[0]
147 && ref[1] == ip[1] 148 && ref[1] == ip[1]
148 && ref[2] == ip[2] 149 && ref[2] == ip[2]
149#else 150#else
150 && *(u16 *)ref == *(u16 *)ip 151 && *(u16 *)ref == *(u16 *)ip
158 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen; 159 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen;
159 160
160 if (expect_false (op + lit + 1 + 3 >= out_end)) 161 if (expect_false (op + lit + 1 + 3 >= out_end))
161 return 0; 162 return 0;
162 163
163 if (lit) 164 if (expect_false (lit))
164 { 165 {
165 *op++ = lit - 1; 166 *op++ = lit - 1;
166 lit = -lit; 167 lit = -lit;
167 do 168 do
168 *op++ = ip[lit]; 169 *op++ = ip[lit];
169 while (++lit); 170 while (expect_false (++lit));
170 } 171 }
171 172
172 for (;;) 173 for (;;)
173 { 174 {
174 if (expect_true (ip < in_end - 2 - 8 && maxlen > 8)) 175 if (expect_true (maxlen > 16))
175 { 176 {
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;
184 len++; if (ref [len] != ip [len]) break;
176 len++; if (ref [len] != ip [len]) break; 185 len++; if (ref [len] != ip [len]) break;
177 len++; if (ref [len] != ip [len]) break; 186 len++; if (ref [len] != ip [len]) break;
178 len++; if (ref [len] != ip [len]) break; 187 len++; if (ref [len] != ip [len]) break;
179 len++; if (ref [len] != ip [len]) break; 188 len++; if (ref [len] != ip [len]) break;
180 len++; if (ref [len] != ip [len]) break; 189 len++; if (ref [len] != ip [len]) break;
246 return 0; 255 return 0;
247 256
248 *op++ = MAX_LIT - 1; 257 *op++ = MAX_LIT - 1;
249 258
250#ifdef lzf_movsb 259#ifdef lzf_movsb
251 ip -= lit; 260 ip -= MAX_LIT;
252 lzf_movsb (op, ip, lit); 261 lzf_movsb (op, ip, lit);
253#else 262#else
254 lit = -lit; 263 lit = -lit;
255 do 264 do
256 *op++ = ip[lit]; 265 *op++ = ip[lit];

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines