[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/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