ref: 2690d62c3a2e0f1d2c40f5282e16e33a60014844
parent: c98f1d19305a0c637190afa47a1f2e3b0d889e4e
author: ppatience0 <ppatience0@gmail.com>
date: Sat Jul 20 14:00:34 EDT 2013
readtif, writetif: simplify rounding
--- a/sys/src/cmd/jpg/readtif.c
+++ b/sys/src/cmd/jpg/readtif.c
@@ -1574,7 +1574,6 @@
static int
checkfields(Tif *t)
{- double a, b;
ulong n, size;
if(t->dx == 0) {@@ -1647,9 +1646,7 @@
werrstr("rows per strip");return -1;
}
- a = (double)t->dy;
- b = (double)t->rows;
- n = (ulong)floor((a+b-1)/b);
+ n = (t->dy + t->rows - 1) / t->rows;
if(t->strips == nil || t->nstrips != n) { werrstr("strip offsets");return -1;
--- a/sys/src/cmd/jpg/writetif.c
+++ b/sys/src/cmd/jpg/writetif.c
@@ -1041,19 +1041,14 @@
{int rgb;
ulong i, count, n;
- double a, b;
count = t->ndata < 0x2000? t->ndata: 0x2000;
- t->rows = count / t->bpl;
- if(count%t->bpl != 0)
- t->rows++;
+ t->rows = (count + t->bpl - 1) / t->bpl;
if(t->comp == Tt4enc && t->opt) {if((n = t->rows%Kpar) != 0)
t->rows += Kpar - n;
}
- a = (double)t->dy;
- b = (double)t->rows;
- t->nstrips = (ulong)floor((a+b-1)/b);
+ t->nstrips = (t->dy + t->rows - 1) / t->rows;
t->strips = malloc(t->nstrips*sizeof *t->strips);
if(t->strips == nil)
return memerr;
--
⑨