ref: d158b799a4f92691216ce07fbe97c5fb3fe67c5b
parent: 2690d62c3a2e0f1d2c40f5282e16e33a60014844
author: ppatience0 <ppatience0@gmail.com>
date: Sat Jul 20 14:19:20 EDT 2013
readtif: simplify rounding in other places
--- a/sys/src/cmd/jpg/readtif.c
+++ b/sys/src/cmd/jpg/readtif.c
@@ -1210,7 +1210,7 @@
static uchar *
lzw(Tif *t)
{- ulong i, j, size, r, dy, n;
+ ulong i, j, size, r, dy;
long striplen;
uchar *data;
Lzw l;
@@ -1217,9 +1217,7 @@
Code *p, *q;
int (*predict)(Tif *, uchar *, ulong);
- n = t->dx * t->dy * t->depth;
- n = n%8 == 0? n/8: n/8+1;
- size = n * sizeof *data;
+ size = ((t->dx*t->dy*t->depth + 7) / 8) * sizeof *data;
if((data = malloc(size)) == nil) {free(t->data);
return nil;
@@ -1239,8 +1237,7 @@
else
l.next = t->ndata;
r = dy < t->rows? dy: t->rows;
- n = t->dx * r * t->depth;
- striplen = n%8 == 0? n/8: n/8+1;
+ striplen = (t->dx*r*t->depth + 7) / 8;
if(lzwstrip(&l, data, size, &j, striplen) < 0)
break;
dy -= t->rows;
@@ -1280,9 +1277,7 @@
ulong i, j, k, size;
uchar *data;
- i = t->dx * t->dy * t->depth;
- i = i%8 == 0? i/8: i/8+1;
- size = i * sizeof *data;
+ size = ((t->dx*t->dy*t->depth + 7) / 8) * sizeof *data;
if((data = malloc(size)) == nil) {free(t->data);
return nil;
@@ -1671,8 +1666,7 @@
if(t->counts == nil && t->comp == Nocomp &&
t->nstrips == 1 &&
(t->counts = malloc(size)) != nil) {- n = t->dx * t->dy * t->depth;
- t->counts[0] = n%8 == 0? n/8: n/8+1;
+ t->counts[0] = (t->dx*t->dy*t->depth + 7) / 8;
t->ncounts = t->nstrips;
}
if(t->counts == nil || t->ncounts != t->nstrips) {--
⑨