git: 9front

Download patch

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) {
--