[master] Imported from libpng-1.2.41beta11.tar

This commit is contained in:
Glenn Randers-Pehrson
2009-11-01 21:40:42 -06:00
parent af9a41d770
commit 6e0cf087ad
22 changed files with 90 additions and 35 deletions

View File

@@ -1,7 +1,7 @@
/* pngwrite.c - general routines to write a PNG file
*
* Last changed in libpng 1.2.41 [November 1, 2009]
* Last changed in libpng 1.2.41 [November 2, 2009]
* Copyright (c) 1998-2009 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.)
@@ -536,6 +536,10 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
{
#ifdef PNG_iTXt_SUPPORTED
png_size_t length;
#endif
/* Libpng 0.90 and later are binary incompatible with libpng 0.89, so
* we must recompile any applications that use any older library version.
* For versions after libpng 1.0, we will be compatible, so we need
@@ -565,6 +569,27 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
png_error(png_ptr,
"Incompatible libpng version in application and library");
}
#ifdef PNG_iTXt_SUPPORTED
/* Any library mismatch is trouble for png_set_read() in
* libpng-1.2.41 and later 1.2.x, so we store the caller's
* library version string.
*/
length = (png_size_t)png_strlen(user_png_ver) + 1;
png_debug1(3, "allocating user_png_ver for png_ptr (%lu bytes)",
(unsigned long)length);
png_ptr->user_png_ver = (png_charp)png_malloc_warn(png_ptr,
(png_uint_32)length);
if (png_ptr->user_png_ver == NULL)
png_warning(png_ptr, "Could not store png_ptr->user_png_ver");
else
png_memcpy(png_ptr->user_png_ver, user_png_ver, length);
#endif /* PNG_iTXt_SUPPORTED */
}
/* Initialize zbuf - compression buffer */