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.23 by root, Tue Nov 13 10:48:02 2007 UTC vs.
Revision 1.25 by root, Tue Nov 13 11:02:28 2007 UTC

157 /* match found at *ref++ */ 157 /* match found at *ref++ */
158 unsigned int len = 2; 158 unsigned int len = 2;
159 unsigned int maxlen = in_end - ip - len; 159 unsigned int maxlen = in_end - ip - len;
160 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen; 160 maxlen = maxlen > MAX_REF ? MAX_REF : maxlen;
161 161
162 if (expect_false (op + 1 + 3 >= out_end))
163 return 0;
164
165 op [- lit - 1] = lit - 1; /* stop run */ 162 op [- lit - 1] = lit - 1; /* stop run */
166 op -= !lit; /* undo run if length is zero */ 163 op -= !lit; /* undo run if length is zero */
164
165 if (expect_false (op + 3 + 1 >= out_end))
166 return 0;
167 167
168 for (;;) 168 for (;;)
169 { 169 {
170 if (expect_true (maxlen > 16)) 170 if (expect_true (maxlen > 16))
171 { 171 {
254 op [- lit - 1] = lit - 1; /* stop run */ 254 op [- lit - 1] = lit - 1; /* stop run */
255 lit = 0; op++; /* start run */ 255 lit = 0; op++; /* start run */
256 } 256 }
257 } 257 }
258 258
259 if (op + lit + 2 >= out_end) 259 if (op + 2 >= out_end)
260 return 0; 260 return 0;
261 261
262 while (ip < in_end) 262 while (ip < in_end)
263 { 263 {
264 lit++; 264 lit++;
265 *op++ = *ip++; 265 *op++ = *ip++;
266 } 266 }
267 267
268 op [- lit - 1] = lit - 1; 268 op [- lit - 1] = lit - 1; /* end run */
269 op -= !lit; /* undo run if length is zero */
269 270
270 return op - (u8 *)out_data; 271 return op - (u8 *)out_data;
271} 272}
272 273

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines