[devel] Guard instances of "floor()" with PNG_FLOATING_ARITHMETIC_SUPPORTED

This commit is contained in:
Glenn Randers-Pehrson 2010-07-29 21:05:45 -05:00
parent dbe0c9d8c7
commit 6679d7c0b1

8
png.c
View File

@ -1159,7 +1159,11 @@ png_ascii_from_fp(png_structp png_ptr, png_charp ascii, png_size_t size,
else else
{ {
/* End of loop - round the whole number. */ /* End of loop - round the whole number. */
#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
d = floor(fp + .5); d = floor(fp + .5);
#else
d = (double)((int)(fp + .5));
#endif
if (d > 9) if (d > 9)
{ {
@ -1343,7 +1347,11 @@ png_ascii_from_fp(png_structp png_ptr, png_charp ascii, png_size_t size,
png_fixed_point png_fixed_point
png_fixed(png_structp png_ptr, double fp, png_const_charp text) png_fixed(png_structp png_ptr, double fp, png_const_charp text)
{ {
#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED
double r = floor(100000 * fp + .5); double r = floor(100000 * fp + .5);
#else
double r = (double)((int)(100000 * fp + .5));
#endif
if (r <= 2147483647. && r >= -2147483648.) if (r <= 2147483647. && r >= -2147483648.)
return (png_fixed_point)r; return (png_fixed_point)r;