[libpng16] Fixed configurations where floating point is completely disabled.
Because of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION
declares floating point APIs during libpng builds even if they are completely
disabled. This requires the png floating point types (png_double*) to be
declared even though the functions are never actually defined. This
change provides a dummy definition so that the declarations work, yet any
implementation will fail to compile because of an incomplete type.
diff --git a/ANNOUNCE b/ANNOUNCE
index a16b106..5e837e0 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,5 +1,5 @@
-Libpng 1.6.0beta27 - August 3, 2012
+Libpng 1.6.0beta27 - August 9, 2012
This is not intended to be a public release. It will be replaced
within a few weeks by a public version or by another test version.
@@ -399,10 +399,17 @@
Moved scripts/chkfmt to contrib/tools.
Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
-Version 1.6.0beta27 [August 3, 2012]
+Version 1.6.0beta27 [August 9, 2012]
Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
Do not use __restrict when GNUC is <= 3.1
Removed references to png_zalloc() and png_zfree() from the manual.
+ Fixed configurations where floating point is completely disabled. Because
+ of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
+ floating point APIs during libpng builds even if they are completely
+ disabled. This requires the png floating point types (png_double*) to be
+ declared even though the functions are never actually defined. This
+ change provides a dummy definition so that the declarations work, yet any
+ implementation will fail to compile because of an incomplete type.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/CHANGES b/CHANGES
index 9bc6271..967c389 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4150,10 +4150,17 @@
Moved scripts/chkfmt to contrib/tools.
Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
-Version 1.6.0beta27 [August 3, 2012]
+Version 1.6.0beta27 [August 9, 2012]
Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
Do not use __restrict when GNUC is <= 3.1
Removed references to png_zalloc() and png_zfree() from the manual.
+ Fixed configurations where floating point is completely disabled. Because
+ of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
+ floating point APIs during libpng builds even if they are completely
+ disabled. This requires the png floating point types (png_double*) to be
+ declared even though the functions are never actually defined. This
+ change provides a dummy definition so that the declarations work, yet any
+ implementation will fail to compile because of an incomplete type.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/pngpriv.h b/pngpriv.h
index e09a10e..1bcb057 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -170,12 +170,17 @@
* the functions will be used without definitions.)
*
* NOTE: although all the API functions are declared here they are not all
- * actually built!
+ * actually built! Because the declarations are still made it is necessary to
+ * fake out types that they depend on.
*/
#ifndef PNG_FP_EXPORT
# ifndef PNG_FLOATING_POINT_SUPPORTED
# define PNG_FP_EXPORT(ordinal, type, name, args)\
PNG_INTERNAL_FUNCTION(type, name, args, PNG_EMPTY);
+ typedef struct png_incomplete png_double;
+ typedef png_double* png_doublep;
+ typedef const png_double* png_const_doublep;
+ typedef png_double** png_doublepp;
# endif
#endif
#ifndef PNG_FIXED_EXPORT