ref: 171db68c3dfb64b7d4671f7ba68ff9e0b5e726df
parent: 0fc3aa99a1679e3d853c5be9358a6a33a76d7694
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;
--
⑨