| 290 | z.avail_out = sizeof(buf); |
| 291 | |
| 292 | loopi(ih) |
| 293 | { |
| 294 | uchar filter = 0; |
| 295 | loopj(2) |
| 296 | { |
| 297 | z.next_in = j ? (Bytef *)data + i*pitch : (Bytef *)&filter; |
| 298 | z.avail_in = j ? iw*3 : 1; |
| 299 | while(z.avail_in > 0) |
| 300 | { |
| 301 | if(deflate(&z, Z_NO_FLUSH) != Z_OK) goto cleanuperror; |
| 302 | #define FLUSHZ do { \ |
| 303 | int flush = sizeof(buf) - z.avail_out; \ |
| 304 | crc = crc32(crc, buf, flush); \ |
| 305 | len += flush; \ |
| 306 | f->write(buf, flush); \ |
| 307 | z.next_out = (Bytef *)buf; \ |
| 308 | z.avail_out = sizeof(buf); \ |
| 309 | } while(0) |
| 310 | FLUSHZ; |
| 311 | } |
| 312 | } |
| 313 | } |
| 314 | |
| 315 | for(;;) |
| 316 | { |
no test coverage detected