| Index: third_party/libpng/pngwrite.c
|
| ===================================================================
|
| --- third_party/libpng/pngwrite.c (revision 7204)
|
| +++ third_party/libpng/pngwrite.c (working copy)
|
| @@ -1,7 +1,7 @@
|
|
|
| /* pngwrite.c - general routines to write a PNG file
|
| *
|
| - * Last changed in libpng 1.2.27 [April 29, 2008]
|
| + * Last changed in libpng 1.2.31 [August 19, 2008]
|
| * For conditions of distribution and use, see copyright notice in png.h
|
| * Copyright (c) 1998-2008 Glenn Randers-Pehrson
|
| * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
| @@ -32,9 +32,9 @@
|
| {
|
| png_write_sig(png_ptr); /* write PNG signature */
|
| #if defined(PNG_MNG_FEATURES_SUPPORTED)
|
| - if((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&(png_ptr->mng_features_permitted))
|
| + if ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&(png_ptr->mng_features_permitted))
|
| {
|
| - png_warning(png_ptr,"MNG features are not allowed in a PNG datastream");
|
| + png_warning(png_ptr, "MNG features are not allowed in a PNG datastream");
|
| png_ptr->mng_features_permitted=0;
|
| }
|
| #endif
|
| @@ -393,6 +393,18 @@
|
|
|
| /* write end of PNG file */
|
| png_write_IEND(png_ptr);
|
| + /* This flush, added in libpng-1.0.8, removed from libpng-1.0.9beta03,
|
| + * and restored again in libpng-1.2.30, may cause some applications that
|
| + * do not set png_ptr->output_flush_fn to crash. If your application
|
| + * experiences a problem, please try building libpng with
|
| + * PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED defined, and report the event to
|
| + * png-mng-implement at lists.sf.net . This kludge will be removed
|
| + * from libpng-1.4.0.
|
| + */
|
| +#if defined(PNG_WRITE_FLUSH_SUPPORTED) && \
|
| + defined(PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED)
|
| + png_flush(png_ptr);
|
| +#endif
|
| }
|
|
|
| #if defined(PNG_WRITE_tIME_SUPPORTED)
|
| @@ -439,8 +451,11 @@
|
| png_malloc_ptr malloc_fn, png_free_ptr free_fn)
|
| {
|
| #endif /* PNG_USER_MEM_SUPPORTED */
|
| - png_structp png_ptr;
|
| #ifdef PNG_SETJMP_SUPPORTED
|
| + volatile
|
| +#endif
|
| + png_structp png_ptr;
|
| +#ifdef PNG_SETJMP_SUPPORTED
|
| #ifdef USE_FAR_KEYWORD
|
| jmp_buf jmpbuf;
|
| #endif
|
| @@ -470,12 +485,12 @@
|
| #endif
|
| {
|
| png_free(png_ptr, png_ptr->zbuf);
|
| - png_ptr->zbuf=NULL;
|
| + png_ptr->zbuf=NULL;
|
| png_destroy_struct(png_ptr);
|
| return (NULL);
|
| }
|
| #ifdef USE_FAR_KEYWORD
|
| - png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
|
| + png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
|
| #endif
|
| #endif
|
|
|
| @@ -484,12 +499,12 @@
|
| #endif /* PNG_USER_MEM_SUPPORTED */
|
| png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
|
|
|
| - if(user_png_ver)
|
| + if (user_png_ver)
|
| {
|
| i=0;
|
| do
|
| {
|
| - if(user_png_ver[i] != png_libpng_ver[i])
|
| + if (user_png_ver[i] != png_libpng_ver[i])
|
| png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
|
| } while (png_libpng_ver[i++]);
|
| }
|
| @@ -547,7 +562,7 @@
|
| #ifdef USE_FAR_KEYWORD
|
| if (setjmp(jmpbuf))
|
| PNG_ABORT();
|
| - png_memcpy(png_ptr->jmpbuf,jmpbuf,png_sizeof(jmp_buf));
|
| + png_memcpy(png_ptr->jmpbuf, jmpbuf, png_sizeof(jmp_buf));
|
| #else
|
| if (setjmp(png_ptr->jmpbuf))
|
| PNG_ABORT();
|
| @@ -572,9 +587,9 @@
|
| png_size_t png_struct_size, png_size_t png_info_size)
|
| {
|
| /* We only come here via pre-1.0.12-compiled applications */
|
| - if(png_ptr == NULL) return;
|
| + if (png_ptr == NULL) return;
|
| #if !defined(PNG_NO_STDIO) && !defined(_WIN32_WCE)
|
| - if(png_sizeof(png_struct) > png_struct_size ||
|
| + if (png_sizeof(png_struct) > png_struct_size ||
|
| png_sizeof(png_info) > png_info_size)
|
| {
|
| char msg[80];
|
| @@ -592,7 +607,7 @@
|
| png_warning(png_ptr, msg);
|
| }
|
| #endif
|
| - if(png_sizeof(png_struct) > png_struct_size)
|
| + if (png_sizeof(png_struct) > png_struct_size)
|
| {
|
| png_ptr->error_fn=NULL;
|
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
| @@ -601,7 +616,7 @@
|
| png_error(png_ptr,
|
| "The png struct allocated by the application for writing is too small.");
|
| }
|
| - if(png_sizeof(png_info) > png_info_size)
|
| + if (png_sizeof(png_info) > png_info_size)
|
| {
|
| png_ptr->error_fn=NULL;
|
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
| @@ -638,7 +653,7 @@
|
| #else
|
| png_ptr->warning_fn=NULL;
|
| png_warning(png_ptr,
|
| - "Application uses deprecated png_write_init() and should be recompiled.");
|
| + "Application uses deprecated png_write_init() and should be recompiled.");
|
| break;
|
| #endif
|
| }
|
| @@ -648,7 +663,7 @@
|
|
|
| #ifdef PNG_SETJMP_SUPPORTED
|
| /* save jump buffer and error functions */
|
| - png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
|
| + png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
|
| #endif
|
|
|
| if (png_sizeof(png_struct) > png_struct_size)
|
| @@ -659,7 +674,7 @@
|
| }
|
|
|
| /* reset all variables to 0 */
|
| - png_memset(png_ptr, 0, png_sizeof (png_struct));
|
| + png_memset(png_ptr, 0, png_sizeof(png_struct));
|
|
|
| /* added at libpng-1.2.6 */
|
| #ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
| @@ -669,7 +684,7 @@
|
|
|
| #ifdef PNG_SETJMP_SUPPORTED
|
| /* restore jump buffer */
|
| - png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
|
| + png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
|
| #endif
|
|
|
| png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
|
| @@ -903,7 +918,7 @@
|
| * 4. The filter_method is 64 and
|
| * 5. The color_type is RGB or RGBA
|
| */
|
| - if((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
|
| + if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
|
| (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
|
| {
|
| /* Intrapixel differencing */
|
| @@ -1027,7 +1042,7 @@
|
| {
|
| png_free(png_ptr, png_ptr->chunk_list);
|
| png_ptr->chunk_list=NULL;
|
| - png_ptr->num_chunk_list=0;
|
| + png_ptr->num_chunk_list = 0;
|
| }
|
| #endif
|
| }
|
| @@ -1076,7 +1091,7 @@
|
| /* free our memory. png_free checks NULL for us. */
|
| png_free(png_ptr, png_ptr->zbuf);
|
| png_free(png_ptr, png_ptr->row_buf);
|
| -#ifndef PNG_NO_WRITE_FILTERING
|
| +#ifndef PNG_NO_WRITE_FILTER
|
| png_free(png_ptr, png_ptr->prev_row);
|
| png_free(png_ptr, png_ptr->sub_row);
|
| png_free(png_ptr, png_ptr->up_row);
|
| @@ -1098,7 +1113,7 @@
|
|
|
| #ifdef PNG_SETJMP_SUPPORTED
|
| /* reset structure */
|
| - png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof (jmp_buf));
|
| + png_memcpy(tmp_jmp, png_ptr->jmpbuf, png_sizeof(jmp_buf));
|
| #endif
|
|
|
| error_fn = png_ptr->error_fn;
|
| @@ -1108,7 +1123,7 @@
|
| free_fn = png_ptr->free_fn;
|
| #endif
|
|
|
| - png_memset(png_ptr, 0, png_sizeof (png_struct));
|
| + png_memset(png_ptr, 0, png_sizeof(png_struct));
|
|
|
| png_ptr->error_fn = error_fn;
|
| png_ptr->warning_fn = warning_fn;
|
| @@ -1118,7 +1133,7 @@
|
| #endif
|
|
|
| #ifdef PNG_SETJMP_SUPPORTED
|
| - png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof (jmp_buf));
|
| + png_memcpy(png_ptr->jmpbuf, tmp_jmp, png_sizeof(jmp_buf));
|
| #endif
|
| }
|
|
|
| @@ -1130,7 +1145,7 @@
|
| if (png_ptr == NULL)
|
| return;
|
| #if defined(PNG_MNG_FEATURES_SUPPORTED)
|
| - if((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
|
| + if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) &&
|
| (method == PNG_INTRAPIXEL_DIFFERENCING))
|
| method = PNG_FILTER_TYPE_BASE;
|
| #endif
|
|
|