if(readn(fd, hdr, 11) != 11)
return nil;
- if(memcmp(hdr, "compressed\n", 11) == 0)
- return creadimage(d, fd, dolock);
+ if(memcmp(hdr, "compressed\n", 11) == 0){
+ if(i = creadimage(d, fd, dolock))
+ goto Done;
+ return nil;
+ }
+
if(readn(fd, hdr+11, 5*12-11) != 5*12-11)
return nil;
- if(d)
+ if(d != nil)
chunk = d->bufsize - 32; /* a little room for header */
else
chunk = 8192;
l = bytesperline(r, chantodepth(chan));
if(l > chunk)
chunk = l;
- if(d){
+ if(d != nil){
if(dolock)
lockdisplay(d);
i = allocimage(d, r, chan, 0, -1);
for(j=0; j<chunk; j++)
tmp[j] ^= 0xFF;
- if(d){
+ if(d != nil){
if(dolock)
lockdisplay(d);
if(loadimage(i, Rect(r.min.x, miny, r.max.x, miny+dy), tmp, chunk) <= 0)
miny += dy;
}
free(tmp);
+ Done:
+ setmalloctag(i, getcallerpc(&d));
return i;
}