From 29fca0d497d26e7c7afba77e28fbfc4b8bd41f52 Mon Sep 17 00:00:00 2001 From: John Bowler Date: Sat, 24 Dec 2011 07:57:43 -0600 Subject: [PATCH] [libpng16] Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously it was disabled whenever internal fixed point arithmetic was selected, which meant it didn't exist even on systems where FP was available but not preferred. --- ANNOUNCE | 8 ++++++-- CHANGES | 8 ++++++-- png.h | 13 +++++++------ pngget.c | 8 ++++++-- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index c00dc422f..5242b600f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -79,8 +79,12 @@ Version 1.6.0beta03 [December 22, 2011] Version 1.6.0beta04 [December 24, 2011] Regenerated configure scripts with automake-1.11.2 - Eliminated png_info_destroy. It is now used only in png.c and only calls one - other internal functions and memset. + Eliminated png_info_destroy(). It is now used only in png.c and only calls + one other internal function and memset(). + Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously + it was disabled whenever internal fixed point arithmetic was selected, + which meant it didn't exist even on systems where FP was available but not + preferred. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index c81ee14f7..a0623d6f4 100644 --- a/CHANGES +++ b/CHANGES @@ -3830,8 +3830,12 @@ Version 1.6.0beta03 [December 22, 2011] Version 1.6.0beta04 [December 24, 2011] Regenerated configure scripts with automake-1.11.2 - Eliminated png_info_destroy. It is now used only in png.c and only calls one - other internal functions and memset. + Eliminated png_info_destroy(). It is now used only in png.c and only calls + one other internal function and memset(). + Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously + it was disabled whenever internal fixed point arithmetic was selected, + which meant it didn't exist even on systems where FP was available but not + preferred. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.h b/png.h index 2c7bb3e20..a27ee7789 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.0beta04 - December 22, 2011 + * libpng version 1.6.0beta04 - December 24, 2011 * Copyright (c) 1998-2011 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -11,7 +11,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.0beta04 - December 22, 2011: Glenn + * libpng versions 0.97, January 1998, through 1.6.0beta04 - December 24, 2011: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -198,7 +198,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.6.0beta04, December 22, 2011, are + * libpng versions 1.2.6, August 15, 2004, through 1.6.0beta04, December 24, 2011, are * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.2.5 * with the following individual added to the list of Contributing Authors: @@ -310,7 +310,7 @@ * Y2K compliance in libpng: * ========================= * - * December 22, 2011 + * December 24, 2011 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -376,7 +376,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.6.0beta04" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.0beta04 - December 22, 2011\n" + " libpng version 1.6.0beta04 - December 24, 2011\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -2265,7 +2265,8 @@ PNG_EXPORT(167, void, png_set_tRNS, (png_structp png_ptr, png_infop info_ptr, #ifdef PNG_sCAL_SUPPORTED PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, (png_const_structp png_ptr, png_const_infop info_ptr, int *unit, double *width, double *height)); -#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED +#if (defined PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + (defined PNG_FLOATING_POINT_SUPPORTED) /* NOTE: this API is currently implemented using floating point arithmetic, * consequently it can only be used on systems with floating point support. * In any case the range of values supported by png_fixed_point is small and it diff --git a/pngget.c b/pngget.c index 5ba713ae5..1841f75a7 100644 --- a/pngget.c +++ b/pngget.c @@ -818,7 +818,8 @@ png_get_pCAL(png_const_structp png_ptr, png_const_infop info_ptr, #ifdef PNG_sCAL_SUPPORTED # ifdef PNG_FIXED_POINT_SUPPORTED -# ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED +# if (defined PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ + (defined PNG_FLOATING_POINT_SUPPORTED) png_uint_32 PNGAPI png_get_sCAL_fixed(png_const_structp png_ptr, png_const_infop info_ptr, int *unit, png_fixed_point *width, png_fixed_point *height) @@ -827,7 +828,10 @@ png_get_sCAL_fixed(png_const_structp png_ptr, png_const_infop info_ptr, (info_ptr->valid & PNG_INFO_sCAL)) { *unit = info_ptr->scal_unit; - /*TODO: make this work without FP support */ + /*TODO: make this work without FP support; the API is currently eliminated + * if neither floating point APIs nor internal floating point arithmetic + * are enabled. + */ *width = png_fixed(png_ptr, atof(info_ptr->scal_s_width), "sCAL width"); *height = png_fixed(png_ptr, atof(info_ptr->scal_s_height), "sCAL height");