Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(385)

Side by Side Diff: third_party/libpng/pngpriv.h

Issue 1591483003: XFA: Upgrade libpng to 1.6.20. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: rebase Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libpng/pngpread.c ('k') | third_party/libpng/pngread.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* pngpriv.h - private declarations for use inside libpng 2 /* pngpriv.h - private declarations for use inside libpng
3 * 3 *
4 * For conditions of distribution and use, see copyright notice in png.h 4 * Last changed in libpng 1.6.18 [July 23, 2015]
5 * Copyright (c) 1998-2013 Glenn Randers-Pehrson 5 * Copyright (c) 1998-2015 Glenn Randers-Pehrson
6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) 7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
8 * 8 *
9 * Last changed in libpng 1.6.3 [July 18, 2013]
10 *
11 * This code is released under the libpng license. 9 * This code is released under the libpng license.
12 * For conditions of distribution and use, see the disclaimer 10 * For conditions of distribution and use, see the disclaimer
13 * and license in png.h 11 * and license in png.h
14 */ 12 */
15 13
16 /* The symbols declared in this file (including the functions declared 14 /* The symbols declared in this file (including the functions declared
17 * as extern) are PRIVATE. They are not part of the libpng public 15 * as extern) are PRIVATE. They are not part of the libpng public
18 * interface, and are not recommended for use by regular applications. 16 * interface, and are not recommended for use by regular applications.
19 * Some of them may become public in the future; others may stay private, 17 * Some of them may become public in the future; others may stay private,
20 * change in an incompatible way, or even disappear. 18 * change in an incompatible way, or even disappear.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 * below is one example of this behavior because it is controlled by the 103 * below is one example of this behavior because it is controlled by the
106 * presence or not of -mfpu=neon on the GCC command line, it is possible to do 104 * presence or not of -mfpu=neon on the GCC command line, it is possible to do
107 * this in $(CC), e.g. "CC=gcc -mfpu=neon", but people who build libpng rarely 105 * this in $(CC), e.g. "CC=gcc -mfpu=neon", but people who build libpng rarely
108 * do this. 106 * do this.
109 */ 107 */
110 #ifndef PNG_ARM_NEON_OPT 108 #ifndef PNG_ARM_NEON_OPT
111 /* ARM NEON optimizations are being controlled by the compiler settings, 109 /* ARM NEON optimizations are being controlled by the compiler settings,
112 * typically the target FPU. If the FPU has been set to NEON (-mfpu=neon 110 * typically the target FPU. If the FPU has been set to NEON (-mfpu=neon
113 * with GCC) then the compiler will define __ARM_NEON__ and we can rely 111 * with GCC) then the compiler will define __ARM_NEON__ and we can rely
114 * unconditionally on NEON instructions not crashing, otherwise we must 112 * unconditionally on NEON instructions not crashing, otherwise we must
115 * disable use of NEON instructions: 113 * disable use of NEON instructions.
116 */ 114 *
117 # ifdef __ARM_NEON__ 115 * NOTE: at present these optimizations depend on 'ALIGNED_MEMORY', so they
118 # define PNG_ARM_NEON_OPT 2 116 * can only be turned on automatically if that is supported too. If
117 * PNG_ARM_NEON_OPT is set in CPPFLAGS (to >0) then arm/arm_init.c will fail
118 * to compile with an appropriate #error if ALIGNED_MEMORY has been turned
119 * off.
120 *
121 * Note that gcc-4.9 defines __ARM_NEON instead of the deprecated
122 * __ARM_NEON__, so we check both variants.
123 *
124 * To disable ARM_NEON optimizations entirely, and skip compiling the
125 * associated assembler code, pass --enable-arm-neon=no to configure
126 * or put -DPNG_ARM_NEON_OPT=0 in CPPFLAGS.
127 */
128 # if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
129 defined(PNG_ALIGNED_MEMORY_SUPPORTED)
130 # define PNG_ARM_NEON_OPT 0
119 # else 131 # else
120 # define PNG_ARM_NEON_OPT 0 132 # define PNG_ARM_NEON_OPT 0
121 # endif 133 # endif
122 #endif 134 #endif
123 135
124 #if PNG_ARM_NEON_OPT > 0 136 #if PNG_ARM_NEON_OPT > 0
125 /* NEON optimizations are to be at least considered by libpng, so enable the 137 /* NEON optimizations are to be at least considered by libpng, so enable the
126 * callbacks to do this. 138 * callbacks to do this.
127 */ 139 */
128 /* 140 # define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_neon
129 * Disabled by sbc since this copy of libpng doesn't contains the arm 141
130 * specific code (e.g. arm/arm_init.c) 142 /* By default the 'intrinsics' code in arm/filter_neon_intrinsics.c is used
131 */ 143 * if possible - if __ARM_NEON__ is set and the compiler version is not known
132 /*# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_neon*/ 144 * to be broken. This is controlled by PNG_ARM_NEON_IMPLEMENTATION which can
133 #endif 145 * be:
146 *
147 * 1 The intrinsics code (the default with __ARM_NEON__)
148 * 2 The hand coded assembler (the default without __ARM_NEON__)
149 *
150 * It is possible to set PNG_ARM_NEON_IMPLEMENTATION in CPPFLAGS, however
151 * this is *NOT* supported and may cease to work even after a minor revision
152 * to libpng. It *is* valid to do this for testing purposes, e.g. speed
153 * testing or a new compiler, but the results should be communicated to the
154 * libpng implementation list for incorporation in the next minor release.
155 */
156 # ifndef PNG_ARM_NEON_IMPLEMENTATION
157 # if defined(__ARM_NEON__) || defined(__ARM_NEON)
158 # if defined(__clang__)
159 /* At present it is unknown by the libpng developers which versions
160 * of clang support the intrinsics, however some or perhaps all
161 * versions do not work with the assembler so this may be
162 * irrelevant, so just use the default (do nothing here.)
163 */
164 # elif defined(__GNUC__)
165 /* GCC 4.5.4 NEON support is known to be broken. 4.6.3 is known to
166 * work, so if this *is* GCC, or G++, look for a version >4.5
167 */
168 # if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6)
169 # define PNG_ARM_NEON_IMPLEMENTATION 2
170 # endif /* no GNUC support */
171 # endif /* __GNUC__ */
172 # else /* !defined __ARM_NEON__ */
173 /* The 'intrinsics' code simply won't compile without this -mfpu=neon:
174 */
175 # define PNG_ARM_NEON_IMPLEMENTATION 2
176 # endif /* __ARM_NEON__ */
177 # endif /* !PNG_ARM_NEON_IMPLEMENTATION */
178
179 # ifndef PNG_ARM_NEON_IMPLEMENTATION
180 /* Use the intrinsics code by default. */
181 # define PNG_ARM_NEON_IMPLEMENTATION 1
182 # endif
183 #endif /* PNG_ARM_NEON_OPT > 0 */
134 184
135 /* Is this a build of a DLL where compilation of the object modules requires 185 /* Is this a build of a DLL where compilation of the object modules requires
136 * different preprocessor settings to those required for a simple library? If 186 * different preprocessor settings to those required for a simple library? If
137 * so PNG_BUILD_DLL must be set. 187 * so PNG_BUILD_DLL must be set.
138 * 188 *
139 * If libpng is used inside a DLL but that DLL does not export the libpng APIs 189 * If libpng is used inside a DLL but that DLL does not export the libpng APIs
140 * PNG_BUILD_DLL must not be set. To avoid the code below kicking in build a 190 * PNG_BUILD_DLL must not be set. To avoid the code below kicking in build a
141 * static library of libpng then link the DLL against that. 191 * static library of libpng then link the DLL against that.
142 */ 192 */
143 #ifndef PNG_BUILD_DLL 193 #ifndef PNG_BUILD_DLL
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 #ifndef PNG_PRIVATE 245 #ifndef PNG_PRIVATE
196 # define PNG_PRIVATE 246 # define PNG_PRIVATE
197 #endif 247 #endif
198 248
199 /* Symbol preprocessing support. 249 /* Symbol preprocessing support.
200 * 250 *
201 * To enable listing global, but internal, symbols the following macros should 251 * To enable listing global, but internal, symbols the following macros should
202 * always be used to declare an extern data or function object in this file. 252 * always be used to declare an extern data or function object in this file.
203 */ 253 */
204 #ifndef PNG_INTERNAL_DATA 254 #ifndef PNG_INTERNAL_DATA
205 # define PNG_INTERNAL_DATA(type, name, array) extern type name array 255 # define PNG_INTERNAL_DATA(type, name, array) PNG_LINKAGE_DATA type name array
206 #endif 256 #endif
207 257
208 #ifndef PNG_INTERNAL_FUNCTION 258 #ifndef PNG_INTERNAL_FUNCTION
209 # define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ 259 # define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\
210 extern PNG_FUNCTION(type, name, args, PNG_EMPTY attributes) 260 PNG_LINKAGE_FUNCTION PNG_FUNCTION(type, name, args, PNG_EMPTY attributes)
261 #endif
262
263 #ifndef PNG_INTERNAL_CALLBACK
264 # define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\
265 PNG_LINKAGE_CALLBACK PNG_FUNCTION(type, (PNGCBAPI name), args,\
266 PNG_EMPTY attributes)
211 #endif 267 #endif
212 268
213 /* If floating or fixed point APIs are disabled they may still be compiled 269 /* If floating or fixed point APIs are disabled they may still be compiled
214 * internally. To handle this make sure they are declared as the appropriate 270 * internally. To handle this make sure they are declared as the appropriate
215 * internal extern function (otherwise the symbol prefixing stuff won't work and 271 * internal extern function (otherwise the symbol prefixing stuff won't work and
216 * the functions will be used without definitions.) 272 * the functions will be used without definitions.)
217 * 273 *
218 * NOTE: although all the API functions are declared here they are not all 274 * NOTE: although all the API functions are declared here they are not all
219 * actually built! Because the declarations are still made it is necessary to 275 * actually built! Because the declarations are still made it is necessary to
220 * fake out types that they depend on. 276 * fake out types that they depend on.
(...skipping 17 matching lines...) Expand all
238 # endif 294 # endif
239 #endif 295 #endif
240 296
241 #include "png.h" 297 #include "png.h"
242 298
243 /* pngconf.h does not set PNG_DLL_EXPORT unless it is required, so: */ 299 /* pngconf.h does not set PNG_DLL_EXPORT unless it is required, so: */
244 #ifndef PNG_DLL_EXPORT 300 #ifndef PNG_DLL_EXPORT
245 # define PNG_DLL_EXPORT 301 # define PNG_DLL_EXPORT
246 #endif 302 #endif
247 303
304 /* This is a global switch to set the compilation for an installed system
305 * (a release build). It can be set for testing debug builds to ensure that
306 * they will compile when the build type is switched to RC or STABLE, the
307 * default is just to use PNG_LIBPNG_BUILD_BASE_TYPE. Set this in CPPFLAGS
308 * with either:
309 *
310 * -DPNG_RELEASE_BUILD Turns on the release compile path
311 * -DPNG_RELEASE_BUILD=0 Turns it off
312 * or in your pngusr.h with
313 * #define PNG_RELEASE_BUILD=1 Turns on the release compile path
314 * #define PNG_RELEASE_BUILD=0 Turns it off
315 */
316 #ifndef PNG_RELEASE_BUILD
317 # define PNG_RELEASE_BUILD (PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC)
318 #endif
319
248 /* SECURITY and SAFETY: 320 /* SECURITY and SAFETY:
249 * 321 *
250 * By default libpng is built without any internal limits on image size, 322 * libpng is built with support for internal limits on image dimensions and
251 * individual heap (png_malloc) allocations or the total amount of memory used. 323 * memory usage. These are documented in scripts/pnglibconf.dfa of the
252 * If PNG_SAFE_LIMITS_SUPPORTED is defined, however, the limits below are used 324 * source and recorded in the machine generated header file pnglibconf.h.
253 * (unless individually overridden). These limits are believed to be fairly
254 * safe, but builders of secure systems should verify the values against the
255 * real system capabilities.
256 */
257 #ifdef PNG_SAFE_LIMITS_SUPPORTED
258 /* 'safe' limits */
259 # ifndef PNG_USER_WIDTH_MAX
260 # define PNG_USER_WIDTH_MAX 1000000
261 # endif
262 # ifndef PNG_USER_HEIGHT_MAX
263 # define PNG_USER_HEIGHT_MAX 1000000
264 # endif
265 # ifndef PNG_USER_CHUNK_CACHE_MAX
266 # define PNG_USER_CHUNK_CACHE_MAX 128
267 # endif
268 # ifndef PNG_USER_CHUNK_MALLOC_MAX
269 # define PNG_USER_CHUNK_MALLOC_MAX 8000000
270 # endif
271 #else
272 /* values for no limits */
273 # ifndef PNG_USER_WIDTH_MAX
274 # define PNG_USER_WIDTH_MAX 0x7fffffff
275 # endif
276 # ifndef PNG_USER_HEIGHT_MAX
277 # define PNG_USER_HEIGHT_MAX 0x7fffffff
278 # endif
279 # ifndef PNG_USER_CHUNK_CACHE_MAX
280 # define PNG_USER_CHUNK_CACHE_MAX 0
281 # endif
282 # ifndef PNG_USER_CHUNK_MALLOC_MAX
283 # define PNG_USER_CHUNK_MALLOC_MAX 0
284 # endif
285 #endif
286
287 /* Moved to pngpriv.h at libpng-1.5.0 */
288 /* NOTE: some of these may have been used in external applications as
289 * these definitions were exposed in pngconf.h prior to 1.5.
290 */ 325 */
291 326
292 /* If you are running on a machine where you cannot allocate more 327 /* If you are running on a machine where you cannot allocate more
293 * than 64K of memory at once, uncomment this. While libpng will not 328 * than 64K of memory at once, uncomment this. While libpng will not
294 * normally need that much memory in a chunk (unless you load up a very 329 * normally need that much memory in a chunk (unless you load up a very
295 * large file), zlib needs to know how big of a chunk it can use, and 330 * large file), zlib needs to know how big of a chunk it can use, and
296 * libpng thus makes sure to check any memory allocation to verify it 331 * libpng thus makes sure to check any memory allocation to verify it
297 * will fit into memory. 332 * will fit into memory.
298 * 333 *
299 * zlib provides 'MAXSEG_64K' which, if defined, indicates the 334 * zlib provides 'MAXSEG_64K' which, if defined, indicates the
(...skipping 22 matching lines...) Expand all
322 # define PNG_ZBUF_SIZE 65536L 357 # define PNG_ZBUF_SIZE 65536L
323 #endif 358 #endif
324 359
325 /* If warnings or errors are turned off the code is disabled or redirected here. 360 /* If warnings or errors are turned off the code is disabled or redirected here.
326 * From 1.5.4 functions have been added to allow very limited formatting of 361 * From 1.5.4 functions have been added to allow very limited formatting of
327 * error and warning messages - this code will also be disabled here. 362 * error and warning messages - this code will also be disabled here.
328 */ 363 */
329 #ifdef PNG_WARNINGS_SUPPORTED 364 #ifdef PNG_WARNINGS_SUPPORTED
330 # define PNG_WARNING_PARAMETERS(p) png_warning_parameters p; 365 # define PNG_WARNING_PARAMETERS(p) png_warning_parameters p;
331 #else 366 #else
332 # define png_warning(s1,s2) ((void)(s1))
333 # define png_chunk_warning(s1,s2) ((void)(s1))
334 # define png_warning_parameter(p,number,string) ((void)0) 367 # define png_warning_parameter(p,number,string) ((void)0)
335 # define png_warning_parameter_unsigned(p,number,format,value) ((void)0) 368 # define png_warning_parameter_unsigned(p,number,format,value) ((void)0)
336 # define png_warning_parameter_signed(p,number,format,value) ((void)0) 369 # define png_warning_parameter_signed(p,number,format,value) ((void)0)
337 # define png_formatted_warning(pp,p,message) ((void)(pp)) 370 # define png_formatted_warning(pp,p,message) ((void)(pp))
338 # define PNG_WARNING_PARAMETERS(p) 371 # define PNG_WARNING_PARAMETERS(p)
339 #endif 372 #endif
340 #ifndef PNG_ERROR_TEXT_SUPPORTED 373 #ifndef PNG_ERROR_TEXT_SUPPORTED
341 # define png_error(s1,s2) png_err(s1)
342 # define png_chunk_error(s1,s2) png_err(s1)
343 # define png_fixed_error(s1,s2) png_err(s1) 374 # define png_fixed_error(s1,s2) png_err(s1)
344 #endif 375 #endif
345 376
346 /* C allows up-casts from (void*) to any pointer and (const void*) to any 377 /* C allows up-casts from (void*) to any pointer and (const void*) to any
347 * pointer to a const object. C++ regards this as a type error and requires an 378 * pointer to a const object. C++ regards this as a type error and requires an
348 * explicit, static, cast and provides the static_cast<> rune to ensure that 379 * explicit, static, cast and provides the static_cast<> rune to ensure that
349 * const is not cast away. 380 * const is not cast away.
350 */ 381 */
351 #ifdef __cplusplus 382 #ifdef __cplusplus
352 # define png_voidcast(type, value) static_cast<type>(value) 383 # define png_voidcast(type, value) static_cast<type>(value)
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 #define PNG_FILLER 0x8000 557 #define PNG_FILLER 0x8000
527 #define PNG_PACKSWAP 0x10000 558 #define PNG_PACKSWAP 0x10000
528 #define PNG_SWAP_ALPHA 0x20000 559 #define PNG_SWAP_ALPHA 0x20000
529 #define PNG_STRIP_ALPHA 0x40000 560 #define PNG_STRIP_ALPHA 0x40000
530 #define PNG_INVERT_ALPHA 0x80000 561 #define PNG_INVERT_ALPHA 0x80000
531 #define PNG_USER_TRANSFORM 0x100000 562 #define PNG_USER_TRANSFORM 0x100000
532 #define PNG_RGB_TO_GRAY_ERR 0x200000 563 #define PNG_RGB_TO_GRAY_ERR 0x200000
533 #define PNG_RGB_TO_GRAY_WARN 0x400000 564 #define PNG_RGB_TO_GRAY_WARN 0x400000
534 #define PNG_RGB_TO_GRAY 0x600000 /* two bits, RGB_TO_GRAY_ERR|WARN */ 565 #define PNG_RGB_TO_GRAY 0x600000 /* two bits, RGB_TO_GRAY_ERR|WARN */
535 #define PNG_ENCODE_ALPHA 0x800000 /* Added to libpng-1.5.4 */ 566 #define PNG_ENCODE_ALPHA 0x800000 /* Added to libpng-1.5.4 */
536 #define PNG_ADD_ALPHA 0x1000000 /* Added to libpng-1.2.7 */ 567 #define PNG_ADD_ALPHA 0x1000000 /* Added to libpng-1.2.7 */
537 #define PNG_EXPAND_tRNS 0x2000000 /* Added to libpng-1.2.9 */ 568 #define PNG_EXPAND_tRNS 0x2000000 /* Added to libpng-1.2.9 */
538 #define PNG_SCALE_16_TO_8 0x4000000 /* Added to libpng-1.5.4 */ 569 #define PNG_SCALE_16_TO_8 0x4000000 /* Added to libpng-1.5.4 */
539 /* 0x8000000 unused */ 570 /* 0x8000000 unused */
540 /* 0x10000000 unused */ 571 /* 0x10000000 unused */
541 /* 0x20000000 unused */ 572 /* 0x20000000 unused */
542 /* 0x40000000 unused */ 573 /* 0x40000000 unused */
543 /* Flags for png_create_struct */ 574 /* Flags for png_create_struct */
544 #define PNG_STRUCT_PNG 0x0001 575 #define PNG_STRUCT_PNG 0x0001
545 #define PNG_STRUCT_INFO 0x0002 576 #define PNG_STRUCT_INFO 0x0002
546 577
547 /* Scaling factor for filter heuristic weighting calculations */
548 #define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))
549 #define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
550
551 /* Flags for the png_ptr->flags rather than declaring a byte for each one */ 578 /* Flags for the png_ptr->flags rather than declaring a byte for each one */
552 #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 579 #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
553 #define PNG_FLAG_ZSTREAM_INITIALIZED 0x0002 /* Added to libpng-1.6.0 */ 580 #define PNG_FLAG_ZSTREAM_INITIALIZED 0x0002 /* Added to libpng-1.6.0 */
554 /* 0x0004 unused */ 581 /* 0x0004 unused */
555 #define PNG_FLAG_ZSTREAM_ENDED 0x0008 /* Added to libpng-1.6.0 */ 582 #define PNG_FLAG_ZSTREAM_ENDED 0x0008 /* Added to libpng-1.6.0 */
556 /* 0x0010 unused */ 583 /* 0x0010 unused */
557 /* 0x0020 unused */ 584 /* 0x0020 unused */
558 #define PNG_FLAG_ROW_INIT 0x0040 585 #define PNG_FLAG_ROW_INIT 0x0040
559 #define PNG_FLAG_FILLER_AFTER 0x0080 586 #define PNG_FLAG_FILLER_AFTER 0x0080
560 #define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 587 #define PNG_FLAG_CRC_ANCILLARY_USE 0x0100
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 * In practice this doesn't matter because png_fixed_point only 658 * In practice this doesn't matter because png_fixed_point only
632 * stores numbers with very low precision. The png_ptr and s 659 * stores numbers with very low precision. The png_ptr and s
633 * arguments are unused by default but are there in case error 660 * arguments are unused by default but are there in case error
634 * checking becomes a requirement. 661 * checking becomes a requirement.
635 */ 662 */
636 #define png_float(png_ptr, fixed, s) (.00001 * (fixed)) 663 #define png_float(png_ptr, fixed, s) (.00001 * (fixed))
637 664
638 /* The fixed point conversion performs range checking and evaluates 665 /* The fixed point conversion performs range checking and evaluates
639 * its argument multiple times, so must be used with care. The 666 * its argument multiple times, so must be used with care. The
640 * range checking uses the PNG specification values for a signed 667 * range checking uses the PNG specification values for a signed
641 * 32 bit fixed point value except that the values are deliberately 668 * 32-bit fixed point value except that the values are deliberately
642 * rounded-to-zero to an integral value - 21474 (21474.83 is roughly 669 * rounded-to-zero to an integral value - 21474 (21474.83 is roughly
643 * (2^31-1) * 100000). 's' is a string that describes the value being 670 * (2^31-1) * 100000). 's' is a string that describes the value being
644 * converted. 671 * converted.
645 * 672 *
646 * NOTE: this macro will raise a png_error if the range check fails, 673 * NOTE: this macro will raise a png_error if the range check fails,
647 * therefore it is normally only appropriate to use this on values 674 * therefore it is normally only appropriate to use this on values
648 * that come from API calls or other sources where an out of range 675 * that come from API calls or other sources where an out of range
649 * error indicates a programming error, not a data error! 676 * error indicates a programming error, not a data error!
650 * 677 *
651 * NOTE: by default this is off - the macro is not used - because the 678 * NOTE: by default this is off - the macro is not used - because the
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 #define png_sTER PNG_U32(115, 84, 69, 82) 751 #define png_sTER PNG_U32(115, 84, 69, 82)
725 #define png_tEXt PNG_U32(116, 69, 88, 116) 752 #define png_tEXt PNG_U32(116, 69, 88, 116)
726 #define png_tIME PNG_U32(116, 73, 77, 69) 753 #define png_tIME PNG_U32(116, 73, 77, 69)
727 #define png_tRNS PNG_U32(116, 82, 78, 83) 754 #define png_tRNS PNG_U32(116, 82, 78, 83)
728 #define png_zTXt PNG_U32(122, 84, 88, 116) 755 #define png_zTXt PNG_U32(122, 84, 88, 116)
729 756
730 /* The following will work on (signed char*) strings, whereas the get_uint_32 757 /* The following will work on (signed char*) strings, whereas the get_uint_32
731 * macro will fail on top-bit-set values because of the sign extension. 758 * macro will fail on top-bit-set values because of the sign extension.
732 */ 759 */
733 #define PNG_CHUNK_FROM_STRING(s)\ 760 #define PNG_CHUNK_FROM_STRING(s)\
734 PNG_U32(0xff&(s)[0], 0xff&(s)[1], 0xff&(s)[2], 0xff&(s)[3]) 761 PNG_U32(0xff & (s)[0], 0xff & (s)[1], 0xff & (s)[2], 0xff & (s)[3])
735 762
736 /* This uses (char), not (png_byte) to avoid warnings on systems where (char) is 763 /* This uses (char), not (png_byte) to avoid warnings on systems where (char) is
737 * signed and the argument is a (char[]) This macro will fail miserably on 764 * signed and the argument is a (char[]) This macro will fail miserably on
738 * systems where (char) is more than 8 bits. 765 * systems where (char) is more than 8 bits.
739 */ 766 */
740 #define PNG_STRING_FROM_CHUNK(s,c)\ 767 #define PNG_STRING_FROM_CHUNK(s,c)\
741 (void)(((char*)(s))[0]=(char)((c)>>24), ((char*)(s))[1]=(char)((c)>>16),\ 768 (void)(((char*)(s))[0]=(char)(((c)>>24) & 0xff), \
742 ((char*)(s))[2]=(char)((c)>>8), ((char*)(s))[3]=(char)((c))) 769 ((char*)(s))[1]=(char)(((c)>>16) & 0xff),\
770 ((char*)(s))[2]=(char)(((c)>>8) & 0xff), \
771 ((char*)(s))[3]=(char)((c & 0xff)))
743 772
744 /* Do the same but terminate with a null character. */ 773 /* Do the same but terminate with a null character. */
745 #define PNG_CSTRING_FROM_CHUNK(s,c)\ 774 #define PNG_CSTRING_FROM_CHUNK(s,c)\
746 (void)(PNG_STRING_FROM_CHUNK(s,c), ((char*)(s))[4] = 0) 775 (void)(PNG_STRING_FROM_CHUNK(s,c), ((char*)(s))[4] = 0)
747 776
748 /* Test on flag values as defined in the spec (section 5.4): */ 777 /* Test on flag values as defined in the spec (section 5.4): */
749 #define PNG_CHUNK_ANCILLARY(c) (1 & ((c) >> 29)) 778 #define PNG_CHUNK_ANCILLARY(c) (1 & ((c) >> 29))
750 #define PNG_CHUNK_CRITICAL(c) (!PNG_CHUNK_ANCILLARY(c)) 779 #define PNG_CHUNK_CRITICAL(c) (!PNG_CHUNK_ANCILLARY(c))
751 #define PNG_CHUNK_PRIVATE(c) (1 & ((c) >> 21)) 780 #define PNG_CHUNK_PRIVATE(c) (1 & ((c) >> 21))
752 #define PNG_CHUNK_RESERVED(c) (1 & ((c) >> 13)) 781 #define PNG_CHUNK_RESERVED(c) (1 & ((c) >> 13))
(...skipping 17 matching lines...) Expand all
770 */ 799 */
771 #if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM 800 #if PNG_ZLIB_VERNUM != 0 && PNG_ZLIB_VERNUM != ZLIB_VERNUM
772 # error ZLIB_VERNUM != PNG_ZLIB_VERNUM \ 801 # error ZLIB_VERNUM != PNG_ZLIB_VERNUM \
773 "-I (include path) error: see the notes in pngpriv.h" 802 "-I (include path) error: see the notes in pngpriv.h"
774 /* This means that when pnglibconf.h was built the copy of zlib.h that it 803 /* This means that when pnglibconf.h was built the copy of zlib.h that it
775 * used is not the same as the one being used here. Because the build of 804 * used is not the same as the one being used here. Because the build of
776 * libpng makes decisions to use inflateInit2 and inflateReset2 based on the 805 * libpng makes decisions to use inflateInit2 and inflateReset2 based on the
777 * zlib version number and because this affects handling of certain broken 806 * zlib version number and because this affects handling of certain broken
778 * PNG files the -I directives must match. 807 * PNG files the -I directives must match.
779 * 808 *
780 * The most likely explanation is that you passed a -I in CFLAGS, this will 809 * The most likely explanation is that you passed a -I in CFLAGS. This will
781 * not work; all the preprocessor directories and in particular all the -I 810 * not work; all the preprocessor directories and in particular all the -I
782 * directives must be in CPPFLAGS. 811 * directives must be in CPPFLAGS.
783 */ 812 */
784 #endif 813 #endif
785 814
786 /* This is used for 16 bit gamma tables -- only the top level pointers are 815 /* This is used for 16-bit gamma tables -- only the top level pointers are
787 * const; this could be changed: 816 * const; this could be changed:
788 */ 817 */
789 typedef const png_uint_16p * png_const_uint_16pp; 818 typedef const png_uint_16p * png_const_uint_16pp;
790 819
791 /* Added to libpng-1.5.7: sRGB conversion tables */ 820 /* Added to libpng-1.5.7: sRGB conversion tables */
792 #if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\ 821 #if defined(PNG_SIMPLIFIED_READ_SUPPORTED) ||\
793 defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) 822 defined(PNG_SIMPLIFIED_WRITE_SUPPORTED)
794 #ifdef PNG_SIMPLIFIED_READ_SUPPORTED 823 #ifdef PNG_SIMPLIFIED_READ_SUPPORTED
795 PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_table, [256]); 824 PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_table, [256]);
796 /* Convert from an sRGB encoded value 0..255 to a 16-bit linear value, 825 /* Convert from an sRGB encoded value 0..255 to a 16-bit linear value,
797 * 0..65535. This table gives the closest 16-bit answers (no errors). 826 * 0..65535. This table gives the closest 16-bit answers (no errors).
798 */ 827 */
799 #endif 828 #endif
800 829
801 PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_base, [512]); 830 PNG_INTERNAL_DATA(const png_uint_16, png_sRGB_base, [512]);
802 PNG_INTERNAL_DATA(const png_byte, png_sRGB_delta, [512]); 831 PNG_INTERNAL_DATA(const png_byte, png_sRGB_delta, [512]);
803 832
804 #define PNG_sRGB_FROM_LINEAR(linear) ((png_byte)((png_sRGB_base[(linear)>>15] +\ 833 #define PNG_sRGB_FROM_LINEAR(linear) \
805 ((((linear)&0x7fff)*png_sRGB_delta[(linear)>>15])>>12)) >> 8)) 834 ((png_byte)(0xff & ((png_sRGB_base[(linear)>>15] \
835 + ((((linear) & 0x7fff)*png_sRGB_delta[(linear)>>15])>>12)) >> 8)))
806 /* Given a value 'linear' in the range 0..255*65535 calculate the 8-bit sRGB 836 /* Given a value 'linear' in the range 0..255*65535 calculate the 8-bit sRGB
807 * encoded value with maximum error 0.646365. Note that the input is not a 837 * encoded value with maximum error 0.646365. Note that the input is not a
808 * 16-bit value; it has been multiplied by 255! */ 838 * 16-bit value; it has been multiplied by 255! */
809 #endif /* PNG_SIMPLIFIED_READ/WRITE */ 839 #endif /* SIMPLIFIED_READ/WRITE */
810 840
811 841
812 /* Inhibit C++ name-mangling for libpng functions but not for system calls. */ 842 /* Inhibit C++ name-mangling for libpng functions but not for system calls. */
813 #ifdef __cplusplus 843 #ifdef __cplusplus
814 extern "C" { 844 extern "C" {
815 #endif /* __cplusplus */ 845 #endif /* __cplusplus */
816 846
817 /* Internal functions; these are not exported from a DLL however because they 847 /* Internal functions; these are not exported from a DLL however because they
818 * are used within several of the C source files they have to be C extern. 848 * are used within several of the C source files they have to be C extern.
819 * 849 *
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 /* Internal base allocator - no messages, NULL on failure to allocate. This 884 /* Internal base allocator - no messages, NULL on failure to allocate. This
855 * does, however, call the application provided allocator and that could call 885 * does, however, call the application provided allocator and that could call
856 * png_error (although that would be a bug in the application implementation.) 886 * png_error (although that would be a bug in the application implementation.)
857 */ 887 */
858 PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_base,(png_const_structrp png_ptr, 888 PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_base,(png_const_structrp png_ptr,
859 png_alloc_size_t size),PNG_ALLOCATED); 889 png_alloc_size_t size),PNG_ALLOCATED);
860 890
861 #if defined(PNG_TEXT_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) ||\ 891 #if defined(PNG_TEXT_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) ||\
862 defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) 892 defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED)
863 /* Internal array allocator, outputs no error or warning messages on failure, 893 /* Internal array allocator, outputs no error or warning messages on failure,
864 * just returns NULL. 894 * just returns NULL.
865 */ 895 */
866 PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_array,(png_const_structrp png_ptr, 896 PNG_INTERNAL_FUNCTION(png_voidp,png_malloc_array,(png_const_structrp png_ptr,
867 int nelements, size_t element_size),PNG_ALLOCATED); 897 int nelements, size_t element_size),PNG_ALLOCATED);
868 898
869 /* The same but an existing array is extended by add_elements. This function 899 /* The same but an existing array is extended by add_elements. This function
870 * also memsets the new elements to 0 and copies the old elements. The old 900 * also memsets the new elements to 0 and copies the old elements. The old
871 * array is not freed or altered. 901 * array is not freed or altered.
872 */ 902 */
873 PNG_INTERNAL_FUNCTION(png_voidp,png_realloc_array,(png_const_structrp png_ptr, 903 PNG_INTERNAL_FUNCTION(png_voidp,png_realloc_array,(png_const_structrp png_ptr,
874 png_const_voidp array, int old_elements, int add_elements, 904 png_const_voidp array, int old_elements, int add_elements,
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 #endif 1064 #endif
1035 1065
1036 /* Chunks that have keywords */ 1066 /* Chunks that have keywords */
1037 #ifdef PNG_WRITE_tEXt_SUPPORTED 1067 #ifdef PNG_WRITE_tEXt_SUPPORTED
1038 PNG_INTERNAL_FUNCTION(void,png_write_tEXt,(png_structrp png_ptr, 1068 PNG_INTERNAL_FUNCTION(void,png_write_tEXt,(png_structrp png_ptr,
1039 png_const_charp key, png_const_charp text, png_size_t text_len),PNG_EMPTY); 1069 png_const_charp key, png_const_charp text, png_size_t text_len),PNG_EMPTY);
1040 #endif 1070 #endif
1041 1071
1042 #ifdef PNG_WRITE_zTXt_SUPPORTED 1072 #ifdef PNG_WRITE_zTXt_SUPPORTED
1043 PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp 1073 PNG_INTERNAL_FUNCTION(void,png_write_zTXt,(png_structrp png_ptr, png_const_charp
1044 key, png_const_charp text, png_size_t text_len, int compression),PNG_EMPTY); 1074 key, png_const_charp text, int compression),PNG_EMPTY);
1045 #endif 1075 #endif
1046 1076
1047 #ifdef PNG_WRITE_iTXt_SUPPORTED 1077 #ifdef PNG_WRITE_iTXt_SUPPORTED
1048 PNG_INTERNAL_FUNCTION(void,png_write_iTXt,(png_structrp png_ptr, 1078 PNG_INTERNAL_FUNCTION(void,png_write_iTXt,(png_structrp png_ptr,
1049 int compression, png_const_charp key, png_const_charp lang, 1079 int compression, png_const_charp key, png_const_charp lang,
1050 png_const_charp lang_key, png_const_charp text),PNG_EMPTY); 1080 png_const_charp lang_key, png_const_charp text),PNG_EMPTY);
1051 #endif 1081 #endif
1052 1082
1053 #ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */ 1083 #ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */
1054 PNG_INTERNAL_FUNCTION(int,png_set_text_2,(png_const_structrp png_ptr, 1084 PNG_INTERNAL_FUNCTION(int,png_set_text_2,(png_const_structrp png_ptr,
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 */ 1203 */
1174 PNG_INTERNAL_FUNCTION(void,png_read_finish_IDAT,(png_structrp png_ptr), 1204 PNG_INTERNAL_FUNCTION(void,png_read_finish_IDAT,(png_structrp png_ptr),
1175 PNG_EMPTY); 1205 PNG_EMPTY);
1176 /* This cleans up when the IDAT LZ stream does not end when the last image 1206 /* This cleans up when the IDAT LZ stream does not end when the last image
1177 * byte is read; there is still some pending input. 1207 * byte is read; there is still some pending input.
1178 */ 1208 */
1179 1209
1180 PNG_INTERNAL_FUNCTION(void,png_read_finish_row,(png_structrp png_ptr), 1210 PNG_INTERNAL_FUNCTION(void,png_read_finish_row,(png_structrp png_ptr),
1181 PNG_EMPTY); 1211 PNG_EMPTY);
1182 /* Finish a row while reading, dealing with interlacing passes, etc. */ 1212 /* Finish a row while reading, dealing with interlacing passes, etc. */
1183 #endif 1213 #endif /* SEQUENTIAL_READ */
1184 1214
1185 /* Initialize the row buffers, etc. */ 1215 /* Initialize the row buffers, etc. */
1186 PNG_INTERNAL_FUNCTION(void,png_read_start_row,(png_structrp png_ptr),PNG_EMPTY); 1216 PNG_INTERNAL_FUNCTION(void,png_read_start_row,(png_structrp png_ptr),PNG_EMPTY);
1187 1217
1218 #if PNG_ZLIB_VERNUM >= 0x1240
1219 PNG_INTERNAL_FUNCTION(int,png_zlib_inflate,(png_structrp png_ptr, int flush),
1220 PNG_EMPTY);
1221 # define PNG_INFLATE(pp, flush) png_zlib_inflate(pp, flush)
1222 #else /* Zlib < 1.2.4 */
1223 # define PNG_INFLATE(pp, flush) inflate(&(pp)->zstream, flush)
1224 #endif /* Zlib < 1.2.4 */
1225
1188 #ifdef PNG_READ_TRANSFORMS_SUPPORTED 1226 #ifdef PNG_READ_TRANSFORMS_SUPPORTED
1189 /* Optional call to update the users info structure */ 1227 /* Optional call to update the users info structure */
1190 PNG_INTERNAL_FUNCTION(void,png_read_transform_info,(png_structrp png_ptr, 1228 PNG_INTERNAL_FUNCTION(void,png_read_transform_info,(png_structrp png_ptr,
1191 png_inforp info_ptr),PNG_EMPTY); 1229 png_inforp info_ptr),PNG_EMPTY);
1192 #endif 1230 #endif
1193 1231
1194 /* These are the functions that do the transformations */ 1232 /* Shared transform functions, defined in pngtran.c */
1195 #ifdef PNG_READ_FILLER_SUPPORTED
1196 PNG_INTERNAL_FUNCTION(void,png_do_read_filler,(png_row_infop row_info,
1197 png_bytep row, png_uint_32 filler, png_uint_32 flags),PNG_EMPTY);
1198 #endif
1199
1200 #ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
1201 PNG_INTERNAL_FUNCTION(void,png_do_read_swap_alpha,(png_row_infop row_info,
1202 png_bytep row),PNG_EMPTY);
1203 #endif
1204
1205 #ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
1206 PNG_INTERNAL_FUNCTION(void,png_do_write_swap_alpha,(png_row_infop row_info,
1207 png_bytep row),PNG_EMPTY);
1208 #endif
1209
1210 #ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
1211 PNG_INTERNAL_FUNCTION(void,png_do_read_invert_alpha,(png_row_infop row_info,
1212 png_bytep row),PNG_EMPTY);
1213 #endif
1214
1215 #ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
1216 PNG_INTERNAL_FUNCTION(void,png_do_write_invert_alpha,(png_row_infop row_info,
1217 png_bytep row),PNG_EMPTY);
1218 #endif
1219
1220 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \ 1233 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \
1221 defined(PNG_READ_STRIP_ALPHA_SUPPORTED) 1234 defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
1222 PNG_INTERNAL_FUNCTION(void,png_do_strip_channel,(png_row_infop row_info, 1235 PNG_INTERNAL_FUNCTION(void,png_do_strip_channel,(png_row_infop row_info,
1223 png_bytep row, int at_start),PNG_EMPTY); 1236 png_bytep row, int at_start),PNG_EMPTY);
1224 #endif 1237 #endif
1225 1238
1226 #ifdef PNG_16BIT_SUPPORTED 1239 #ifdef PNG_16BIT_SUPPORTED
1227 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 1240 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
1228 PNG_INTERNAL_FUNCTION(void,png_do_swap,(png_row_infop row_info, 1241 PNG_INTERNAL_FUNCTION(void,png_do_swap,(png_row_infop row_info,
1229 png_bytep row),PNG_EMPTY); 1242 png_bytep row),PNG_EMPTY);
1230 #endif 1243 #endif
1231 #endif 1244 #endif
1232 1245
1233 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ 1246 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || \
1234 defined(PNG_WRITE_PACKSWAP_SUPPORTED) 1247 defined(PNG_WRITE_PACKSWAP_SUPPORTED)
1235 PNG_INTERNAL_FUNCTION(void,png_do_packswap,(png_row_infop row_info, 1248 PNG_INTERNAL_FUNCTION(void,png_do_packswap,(png_row_infop row_info,
1236 png_bytep row),PNG_EMPTY); 1249 png_bytep row),PNG_EMPTY);
1237 #endif 1250 #endif
1238 1251
1239 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1240 PNG_INTERNAL_FUNCTION(int,png_do_rgb_to_gray,(png_structrp png_ptr,
1241 png_row_infop row_info, png_bytep row),PNG_EMPTY);
1242 #endif
1243
1244 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
1245 PNG_INTERNAL_FUNCTION(void,png_do_gray_to_rgb,(png_row_infop row_info,
1246 png_bytep row),PNG_EMPTY);
1247 #endif
1248
1249 #ifdef PNG_READ_PACK_SUPPORTED
1250 PNG_INTERNAL_FUNCTION(void,png_do_unpack,(png_row_infop row_info,
1251 png_bytep row),PNG_EMPTY);
1252 #endif
1253
1254 #ifdef PNG_READ_SHIFT_SUPPORTED
1255 PNG_INTERNAL_FUNCTION(void,png_do_unshift,(png_row_infop row_info,
1256 png_bytep row, png_const_color_8p sig_bits),PNG_EMPTY);
1257 #endif
1258
1259 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 1252 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
1260 PNG_INTERNAL_FUNCTION(void,png_do_invert,(png_row_infop row_info, 1253 PNG_INTERNAL_FUNCTION(void,png_do_invert,(png_row_infop row_info,
1261 png_bytep row),PNG_EMPTY); 1254 png_bytep row),PNG_EMPTY);
1262 #endif 1255 #endif
1263 1256
1264 #ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
1265 PNG_INTERNAL_FUNCTION(void,png_do_scale_16_to_8,(png_row_infop row_info,
1266 png_bytep row),PNG_EMPTY);
1267 #endif
1268
1269 #ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
1270 PNG_INTERNAL_FUNCTION(void,png_do_chop,(png_row_infop row_info,
1271 png_bytep row),PNG_EMPTY);
1272 #endif
1273
1274 #ifdef PNG_READ_QUANTIZE_SUPPORTED
1275 PNG_INTERNAL_FUNCTION(void,png_do_quantize,(png_row_infop row_info,
1276 png_bytep row, png_const_bytep palette_lookup,
1277 png_const_bytep quantize_lookup),PNG_EMPTY);
1278
1279 # ifdef PNG_CORRECT_PALETTE_SUPPORTED
1280 PNG_INTERNAL_FUNCTION(void,png_correct_palette,(png_structrp png_ptr,
1281 png_colorp palette, int num_palette),PNG_EMPTY);
1282 # endif
1283 #endif
1284
1285 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 1257 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
1286 PNG_INTERNAL_FUNCTION(void,png_do_bgr,(png_row_infop row_info, 1258 PNG_INTERNAL_FUNCTION(void,png_do_bgr,(png_row_infop row_info,
1287 png_bytep row),PNG_EMPTY); 1259 png_bytep row),PNG_EMPTY);
1288 #endif 1260 #endif
1289 1261
1290 #ifdef PNG_WRITE_PACK_SUPPORTED
1291 PNG_INTERNAL_FUNCTION(void,png_do_pack,(png_row_infop row_info,
1292 png_bytep row, png_uint_32 bit_depth),PNG_EMPTY);
1293 #endif
1294
1295 #ifdef PNG_WRITE_SHIFT_SUPPORTED
1296 PNG_INTERNAL_FUNCTION(void,png_do_shift,(png_row_infop row_info,
1297 png_bytep row, png_const_color_8p bit_depth),PNG_EMPTY);
1298 #endif
1299
1300 #if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
1301 defined(PNG_READ_ALPHA_MODE_SUPPORTED)
1302 PNG_INTERNAL_FUNCTION(void,png_do_compose,(png_row_infop row_info,
1303 png_bytep row, png_structrp png_ptr),PNG_EMPTY);
1304 #endif
1305
1306 #ifdef PNG_READ_GAMMA_SUPPORTED
1307 PNG_INTERNAL_FUNCTION(void,png_do_gamma,(png_row_infop row_info,
1308 png_bytep row, png_structrp png_ptr),PNG_EMPTY);
1309 #endif
1310
1311 #ifdef PNG_READ_ALPHA_MODE_SUPPORTED
1312 PNG_INTERNAL_FUNCTION(void,png_do_encode_alpha,(png_row_infop row_info,
1313 png_bytep row, png_structrp png_ptr),PNG_EMPTY);
1314 #endif
1315
1316 #ifdef PNG_READ_EXPAND_SUPPORTED
1317 PNG_INTERNAL_FUNCTION(void,png_do_expand_palette,(png_row_infop row_info,
1318 png_bytep row, png_const_colorp palette, png_const_bytep trans,
1319 int num_trans),PNG_EMPTY);
1320 PNG_INTERNAL_FUNCTION(void,png_do_expand,(png_row_infop row_info,
1321 png_bytep row, png_const_color_16p trans_color),PNG_EMPTY);
1322 #endif
1323
1324 #ifdef PNG_READ_EXPAND_16_SUPPORTED
1325 PNG_INTERNAL_FUNCTION(void,png_do_expand_16,(png_row_infop row_info,
1326 png_bytep row),PNG_EMPTY);
1327 #endif
1328
1329 /* The following decodes the appropriate chunks, and does error correction, 1262 /* The following decodes the appropriate chunks, and does error correction,
1330 * then calls the appropriate callback for the chunk if it is valid. 1263 * then calls the appropriate callback for the chunk if it is valid.
1331 */ 1264 */
1332 1265
1333 /* Decode the IHDR chunk */ 1266 /* Decode the IHDR chunk */
1334 PNG_INTERNAL_FUNCTION(void,png_handle_IHDR,(png_structrp png_ptr, 1267 PNG_INTERNAL_FUNCTION(void,png_handle_IHDR,(png_structrp png_ptr,
1335 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1268 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1336 PNG_INTERNAL_FUNCTION(void,png_handle_PLTE,(png_structrp png_ptr, 1269 PNG_INTERNAL_FUNCTION(void,png_handle_PLTE,(png_structrp png_ptr,
1337 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1270 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1338 PNG_INTERNAL_FUNCTION(void,png_handle_IEND,(png_structrp png_ptr, 1271 PNG_INTERNAL_FUNCTION(void,png_handle_IEND,(png_structrp png_ptr,
(...skipping 15 matching lines...) Expand all
1354 #endif 1287 #endif
1355 1288
1356 #ifdef PNG_READ_hIST_SUPPORTED 1289 #ifdef PNG_READ_hIST_SUPPORTED
1357 PNG_INTERNAL_FUNCTION(void,png_handle_hIST,(png_structrp png_ptr, 1290 PNG_INTERNAL_FUNCTION(void,png_handle_hIST,(png_structrp png_ptr,
1358 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1291 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1359 #endif 1292 #endif
1360 1293
1361 #ifdef PNG_READ_iCCP_SUPPORTED 1294 #ifdef PNG_READ_iCCP_SUPPORTED
1362 PNG_INTERNAL_FUNCTION(void,png_handle_iCCP,(png_structrp png_ptr, 1295 PNG_INTERNAL_FUNCTION(void,png_handle_iCCP,(png_structrp png_ptr,
1363 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1296 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1364 #endif /* PNG_READ_iCCP_SUPPORTED */ 1297 #endif /* READ_iCCP */
1365 1298
1366 #ifdef PNG_READ_iTXt_SUPPORTED 1299 #ifdef PNG_READ_iTXt_SUPPORTED
1367 PNG_INTERNAL_FUNCTION(void,png_handle_iTXt,(png_structrp png_ptr, 1300 PNG_INTERNAL_FUNCTION(void,png_handle_iTXt,(png_structrp png_ptr,
1368 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1301 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1369 #endif 1302 #endif
1370 1303
1371 #ifdef PNG_READ_oFFs_SUPPORTED 1304 #ifdef PNG_READ_oFFs_SUPPORTED
1372 PNG_INTERNAL_FUNCTION(void,png_handle_oFFs,(png_structrp png_ptr, 1305 PNG_INTERNAL_FUNCTION(void,png_handle_oFFs,(png_structrp png_ptr,
1373 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1306 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1374 #endif 1307 #endif
(...skipping 14 matching lines...) Expand all
1389 #endif 1322 #endif
1390 1323
1391 #ifdef PNG_READ_sCAL_SUPPORTED 1324 #ifdef PNG_READ_sCAL_SUPPORTED
1392 PNG_INTERNAL_FUNCTION(void,png_handle_sCAL,(png_structrp png_ptr, 1325 PNG_INTERNAL_FUNCTION(void,png_handle_sCAL,(png_structrp png_ptr,
1393 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1326 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1394 #endif 1327 #endif
1395 1328
1396 #ifdef PNG_READ_sPLT_SUPPORTED 1329 #ifdef PNG_READ_sPLT_SUPPORTED
1397 PNG_INTERNAL_FUNCTION(void,png_handle_sPLT,(png_structrp png_ptr, 1330 PNG_INTERNAL_FUNCTION(void,png_handle_sPLT,(png_structrp png_ptr,
1398 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1331 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1399 #endif /* PNG_READ_sPLT_SUPPORTED */ 1332 #endif /* READ_sPLT */
1400 1333
1401 #ifdef PNG_READ_sRGB_SUPPORTED 1334 #ifdef PNG_READ_sRGB_SUPPORTED
1402 PNG_INTERNAL_FUNCTION(void,png_handle_sRGB,(png_structrp png_ptr, 1335 PNG_INTERNAL_FUNCTION(void,png_handle_sRGB,(png_structrp png_ptr,
1403 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1336 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1404 #endif 1337 #endif
1405 1338
1406 #ifdef PNG_READ_tEXt_SUPPORTED 1339 #ifdef PNG_READ_tEXt_SUPPORTED
1407 PNG_INTERNAL_FUNCTION(void,png_handle_tEXt,(png_structrp png_ptr, 1340 PNG_INTERNAL_FUNCTION(void,png_handle_tEXt,(png_structrp png_ptr,
1408 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1341 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1409 #endif 1342 #endif
1410 1343
1411 #ifdef PNG_READ_tIME_SUPPORTED 1344 #ifdef PNG_READ_tIME_SUPPORTED
1412 PNG_INTERNAL_FUNCTION(void,png_handle_tIME,(png_structrp png_ptr, 1345 PNG_INTERNAL_FUNCTION(void,png_handle_tIME,(png_structrp png_ptr,
1413 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1346 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1414 #endif 1347 #endif
1415 1348
1416 #ifdef PNG_READ_tRNS_SUPPORTED 1349 #ifdef PNG_READ_tRNS_SUPPORTED
1417 PNG_INTERNAL_FUNCTION(void,png_handle_tRNS,(png_structrp png_ptr, 1350 PNG_INTERNAL_FUNCTION(void,png_handle_tRNS,(png_structrp png_ptr,
1418 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1351 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1419 #endif 1352 #endif
1420 1353
1421 #ifdef PNG_READ_zTXt_SUPPORTED 1354 #ifdef PNG_READ_zTXt_SUPPORTED
1422 PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr, 1355 PNG_INTERNAL_FUNCTION(void,png_handle_zTXt,(png_structrp png_ptr,
1423 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1356 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1424 #endif 1357 #endif
1425 1358
1426 PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_structrp png_ptr, 1359 PNG_INTERNAL_FUNCTION(void,png_check_chunk_name,(png_structrp png_ptr,
1427 png_uint_32 chunk_name),PNG_EMPTY); 1360 png_uint_32 chunk_name),PNG_EMPTY);
1428 1361
1429 #ifdef PNG_READ_SUPPORTED
1430 PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr, 1362 PNG_INTERNAL_FUNCTION(void,png_handle_unknown,(png_structrp png_ptr,
1431 png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY); 1363 png_inforp info_ptr, png_uint_32 length, int keep),PNG_EMPTY);
1432 /* This is the function that gets called for unknown chunks. The 'keep' 1364 /* This is the function that gets called for unknown chunks. The 'keep'
1433 * argument is either non-zero for a known chunk that has been set to be 1365 * argument is either non-zero for a known chunk that has been set to be
1434 * handled as unknown or zero for an unknown chunk. By default the function 1366 * handled as unknown or zero for an unknown chunk. By default the function
1435 * just skips the chunk or errors out if it is critical. 1367 * just skips the chunk or errors out if it is critical.
1436 */ 1368 */
1437 1369
1438 #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 1370 #if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) ||\
1439 #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED 1371 defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
1440 PNG_INTERNAL_FUNCTION(int,png_chunk_unknown_handling, 1372 PNG_INTERNAL_FUNCTION(int,png_chunk_unknown_handling,
1441 (png_const_structrp png_ptr, png_uint_32 chunk_name),PNG_EMPTY); 1373 (png_const_structrp png_ptr, png_uint_32 chunk_name),PNG_EMPTY);
1442 /* Exactly as the API png_handle_as_unknown() except that the argument is a 1374 /* Exactly as the API png_handle_as_unknown() except that the argument is a
1443 * 32-bit chunk name, not a string. 1375 * 32-bit chunk name, not a string.
1444 */ 1376 */
1445 #endif 1377 #endif /* READ_UNKNOWN_CHUNKS || HANDLE_AS_UNKNOWN */
1446 #endif /* PNG_READ_UNKNOWN_CHUNKS_SUPPORTED */
1447 #endif /* PNG_READ_SUPPORTED */
1448 1378
1449 /* Handle the transformations for reading and writing */ 1379 /* Handle the transformations for reading and writing */
1450 #ifdef PNG_READ_TRANSFORMS_SUPPORTED 1380 #ifdef PNG_READ_TRANSFORMS_SUPPORTED
1451 PNG_INTERNAL_FUNCTION(void,png_do_read_transformations,(png_structrp png_ptr, 1381 PNG_INTERNAL_FUNCTION(void,png_do_read_transformations,(png_structrp png_ptr,
1452 png_row_infop row_info),PNG_EMPTY); 1382 png_row_infop row_info),PNG_EMPTY);
1453 #endif 1383 #endif
1454 #ifdef PNG_WRITE_TRANSFORMS_SUPPORTED 1384 #ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
1455 PNG_INTERNAL_FUNCTION(void,png_do_write_transformations,(png_structrp png_ptr, 1385 PNG_INTERNAL_FUNCTION(void,png_do_write_transformations,(png_structrp png_ptr,
1456 png_row_infop row_info),PNG_EMPTY); 1386 png_row_infop row_info),PNG_EMPTY);
1457 #endif 1387 #endif
1458 1388
1459 #ifdef PNG_READ_TRANSFORMS_SUPPORTED 1389 #ifdef PNG_READ_TRANSFORMS_SUPPORTED
1460 PNG_INTERNAL_FUNCTION(void,png_init_read_transformations,(png_structrp png_ptr), 1390 PNG_INTERNAL_FUNCTION(void,png_init_read_transformations,(png_structrp png_ptr),
1461 PNG_EMPTY); 1391 PNG_EMPTY);
1462 #endif 1392 #endif
1463 1393
1464 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 1394 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
1465 PNG_INTERNAL_FUNCTION(void,png_push_read_chunk,(png_structrp png_ptr, 1395 PNG_INTERNAL_FUNCTION(void,png_push_read_chunk,(png_structrp png_ptr,
1466 png_inforp info_ptr),PNG_EMPTY); 1396 png_inforp info_ptr),PNG_EMPTY);
1467 PNG_INTERNAL_FUNCTION(void,png_push_read_sig,(png_structrp png_ptr, 1397 PNG_INTERNAL_FUNCTION(void,png_push_read_sig,(png_structrp png_ptr,
1468 png_inforp info_ptr),PNG_EMPTY); 1398 png_inforp info_ptr),PNG_EMPTY);
1469 PNG_INTERNAL_FUNCTION(void,png_push_check_crc,(png_structrp png_ptr),PNG_EMPTY); 1399 PNG_INTERNAL_FUNCTION(void,png_push_check_crc,(png_structrp png_ptr),PNG_EMPTY);
1470 PNG_INTERNAL_FUNCTION(void,png_push_crc_skip,(png_structrp png_ptr,
1471 png_uint_32 length),PNG_EMPTY);
1472 PNG_INTERNAL_FUNCTION(void,png_push_crc_finish,(png_structrp png_ptr),
1473 PNG_EMPTY);
1474 PNG_INTERNAL_FUNCTION(void,png_push_save_buffer,(png_structrp png_ptr), 1400 PNG_INTERNAL_FUNCTION(void,png_push_save_buffer,(png_structrp png_ptr),
1475 PNG_EMPTY); 1401 PNG_EMPTY);
1476 PNG_INTERNAL_FUNCTION(void,png_push_restore_buffer,(png_structrp png_ptr, 1402 PNG_INTERNAL_FUNCTION(void,png_push_restore_buffer,(png_structrp png_ptr,
1477 png_bytep buffer, png_size_t buffer_length),PNG_EMPTY); 1403 png_bytep buffer, png_size_t buffer_length),PNG_EMPTY);
1478 PNG_INTERNAL_FUNCTION(void,png_push_read_IDAT,(png_structrp png_ptr),PNG_EMPTY); 1404 PNG_INTERNAL_FUNCTION(void,png_push_read_IDAT,(png_structrp png_ptr),PNG_EMPTY);
1479 PNG_INTERNAL_FUNCTION(void,png_process_IDAT_data,(png_structrp png_ptr, 1405 PNG_INTERNAL_FUNCTION(void,png_process_IDAT_data,(png_structrp png_ptr,
1480 png_bytep buffer, png_size_t buffer_length),PNG_EMPTY); 1406 png_bytep buffer, png_size_t buffer_length),PNG_EMPTY);
1481 PNG_INTERNAL_FUNCTION(void,png_push_process_row,(png_structrp png_ptr), 1407 PNG_INTERNAL_FUNCTION(void,png_push_process_row,(png_structrp png_ptr),
1482 PNG_EMPTY); 1408 PNG_EMPTY);
1483 PNG_INTERNAL_FUNCTION(void,png_push_handle_unknown,(png_structrp png_ptr, 1409 PNG_INTERNAL_FUNCTION(void,png_push_handle_unknown,(png_structrp png_ptr,
(...skipping 22 matching lines...) Expand all
1506 PNG_INTERNAL_FUNCTION(void,png_push_read_zTXt,(png_structrp png_ptr, 1432 PNG_INTERNAL_FUNCTION(void,png_push_read_zTXt,(png_structrp png_ptr,
1507 png_inforp info_ptr),PNG_EMPTY); 1433 png_inforp info_ptr),PNG_EMPTY);
1508 # endif 1434 # endif
1509 # ifdef PNG_READ_iTXt_SUPPORTED 1435 # ifdef PNG_READ_iTXt_SUPPORTED
1510 PNG_INTERNAL_FUNCTION(void,png_push_handle_iTXt,(png_structrp png_ptr, 1436 PNG_INTERNAL_FUNCTION(void,png_push_handle_iTXt,(png_structrp png_ptr,
1511 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY); 1437 png_inforp info_ptr, png_uint_32 length),PNG_EMPTY);
1512 PNG_INTERNAL_FUNCTION(void,png_push_read_iTXt,(png_structrp png_ptr, 1438 PNG_INTERNAL_FUNCTION(void,png_push_read_iTXt,(png_structrp png_ptr,
1513 png_inforp info_ptr),PNG_EMPTY); 1439 png_inforp info_ptr),PNG_EMPTY);
1514 # endif 1440 # endif
1515 1441
1516 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 1442 #endif /* PROGRESSIVE_READ */
1517
1518 #ifdef PNG_MNG_FEATURES_SUPPORTED
1519 PNG_INTERNAL_FUNCTION(void,png_do_read_intrapixel,(png_row_infop row_info,
1520 png_bytep row),PNG_EMPTY);
1521 PNG_INTERNAL_FUNCTION(void,png_do_write_intrapixel,(png_row_infop row_info,
1522 png_bytep row),PNG_EMPTY);
1523 #endif
1524 1443
1525 /* Added at libpng version 1.6.0 */ 1444 /* Added at libpng version 1.6.0 */
1526 #ifdef PNG_GAMMA_SUPPORTED 1445 #ifdef PNG_GAMMA_SUPPORTED
1527 PNG_INTERNAL_FUNCTION(void,png_colorspace_set_gamma,(png_const_structrp png_ptr, 1446 PNG_INTERNAL_FUNCTION(void,png_colorspace_set_gamma,(png_const_structrp png_ptr,
1528 png_colorspacerp colorspace, png_fixed_point gAMA), PNG_EMPTY); 1447 png_colorspacerp colorspace, png_fixed_point gAMA), PNG_EMPTY);
1529 /* Set the colorspace gamma with a value provided by the application or by 1448 /* Set the colorspace gamma with a value provided by the application or by
1530 * the gAMA chunk on read. The value will override anything set by an ICC 1449 * the gAMA chunk on read. The value will override anything set by an ICC
1531 * profile. 1450 * profile.
1532 */ 1451 */
1533 1452
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1856 /* This is the same but it checks a complete string and returns true 1775 /* This is the same but it checks a complete string and returns true
1857 * only if it just contains a floating point number. As of 1.5.4 this 1776 * only if it just contains a floating point number. As of 1.5.4 this
1858 * function also returns the state at the end of parsing the number if 1777 * function also returns the state at the end of parsing the number if
1859 * it was valid (otherwise it returns 0.) This can be used for testing 1778 * it was valid (otherwise it returns 0.) This can be used for testing
1860 * for negative or zero values using the sticky flag. 1779 * for negative or zero values using the sticky flag.
1861 */ 1780 */
1862 PNG_INTERNAL_FUNCTION(int,png_check_fp_string,(png_const_charp string, 1781 PNG_INTERNAL_FUNCTION(int,png_check_fp_string,(png_const_charp string,
1863 png_size_t size),PNG_EMPTY); 1782 png_size_t size),PNG_EMPTY);
1864 #endif /* pCAL || sCAL */ 1783 #endif /* pCAL || sCAL */
1865 1784
1866 #if defined(PNG_READ_GAMMA_SUPPORTED) ||\ 1785 #if defined(PNG_GAMMA_SUPPORTED) ||\
1867 defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED) 1786 defined(PNG_INCH_CONVERSIONS_SUPPORTED) || defined(PNG_READ_pHYs_SUPPORTED)
1868 /* Added at libpng version 1.5.0 */ 1787 /* Added at libpng version 1.5.0 */
1869 /* This is a utility to provide a*times/div (rounded) and indicate 1788 /* This is a utility to provide a*times/div (rounded) and indicate
1870 * if there is an overflow. The result is a boolean - false (0) 1789 * if there is an overflow. The result is a boolean - false (0)
1871 * for overflow, true (1) if no overflow, in which case *res 1790 * for overflow, true (1) if no overflow, in which case *res
1872 * holds the result. 1791 * holds the result.
1873 */ 1792 */
1874 PNG_INTERNAL_FUNCTION(int,png_muldiv,(png_fixed_point_p res, png_fixed_point a, 1793 PNG_INTERNAL_FUNCTION(int,png_muldiv,(png_fixed_point_p res, png_fixed_point a,
1875 png_int_32 multiplied_by, png_int_32 divided_by),PNG_EMPTY); 1794 png_int_32 multiplied_by, png_int_32 divided_by),PNG_EMPTY);
1876 #endif 1795 #endif
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1947 #ifdef __cplusplus 1866 #ifdef __cplusplus
1948 # define png_control_jmp_buf(pc) (((jmp_buf*)((pc)->error_buf))[0]) 1867 # define png_control_jmp_buf(pc) (((jmp_buf*)((pc)->error_buf))[0])
1949 #else 1868 #else
1950 # define png_control_jmp_buf(pc) ((pc)->error_buf) 1869 # define png_control_jmp_buf(pc) ((pc)->error_buf)
1951 #endif 1870 #endif
1952 1871
1953 /* Utility to safely execute a piece of libpng code catching and logging any 1872 /* Utility to safely execute a piece of libpng code catching and logging any
1954 * errors that might occur. Returns true on success, false on failure (either 1873 * errors that might occur. Returns true on success, false on failure (either
1955 * of the function or as a result of a png_error.) 1874 * of the function or as a result of a png_error.)
1956 */ 1875 */
1957 PNG_INTERNAL_FUNCTION(void,png_safe_error,(png_structp png_ptr, 1876 PNG_INTERNAL_CALLBACK(void,png_safe_error,(png_structp png_ptr,
1958 png_const_charp error_message),PNG_NORETURN); 1877 png_const_charp error_message),PNG_NORETURN);
1959 1878
1960 #ifdef PNG_WARNINGS_SUPPORTED 1879 #ifdef PNG_WARNINGS_SUPPORTED
1961 PNG_INTERNAL_FUNCTION(void,png_safe_warning,(png_structp png_ptr, 1880 PNG_INTERNAL_CALLBACK(void,png_safe_warning,(png_structp png_ptr,
1962 png_const_charp warning_message),PNG_EMPTY); 1881 png_const_charp warning_message),PNG_EMPTY);
1963 #else 1882 #else
1964 # define png_safe_warning 0/*dummy argument*/ 1883 # define png_safe_warning 0/*dummy argument*/
1965 #endif 1884 #endif
1966 1885
1967 PNG_INTERNAL_FUNCTION(int,png_safe_execute,(png_imagep image, 1886 PNG_INTERNAL_FUNCTION(int,png_safe_execute,(png_imagep image,
1968 int (*function)(png_voidp), png_voidp arg),PNG_EMPTY); 1887 int (*function)(png_voidp), png_voidp arg),PNG_EMPTY);
1969 1888
1970 /* Utility to log an error; this also cleans up the png_image; the function 1889 /* Utility to log an error; this also cleans up the png_image; the function
1971 * always returns 0 (false). 1890 * always returns 0 (false).
(...skipping 29 matching lines...) Expand all
2001 /* Maintainer: Put new private prototypes here ^ */ 1920 /* Maintainer: Put new private prototypes here ^ */
2002 1921
2003 #include "pngdebug.h" 1922 #include "pngdebug.h"
2004 1923
2005 #ifdef __cplusplus 1924 #ifdef __cplusplus
2006 } 1925 }
2007 #endif 1926 #endif
2008 1927
2009 #endif /* PNG_VERSION_INFO_ONLY */ 1928 #endif /* PNG_VERSION_INFO_ONLY */
2010 #endif /* PNGPRIV_H */ 1929 #endif /* PNGPRIV_H */
OLDNEW
« no previous file with comments | « third_party/libpng/pngpread.c ('k') | third_party/libpng/pngread.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698