X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/154e1ca1814ff1987caf1d6c4e3967ca6a9548c4..3b01b1fe4cb656f39290bf7f3891667855abe601:/src/common/imagpng.cpp diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index 8b5d4cd9f2..54c3ac8819 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -175,28 +175,16 @@ void PNGLINKAGEMODE wx_PNG_stream_writer( png_structp png_ptr, png_bytep data, // from pngerror.c // so that the libpng doesn't send anything on stderr void -PNGLINKAGEMODE wx_png_error(png_structp png_ptr, png_const_charp message) +PNGLINKAGEMODE wx_png_error(png_structp WXUNUSED(png_ptr), png_const_charp message) { - wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr); - if (info->verbose) - wxLogError( wxString::FromAscii(message) ); - -#ifdef USE_FAR_KEYWORD - { - jmp_buf jmpbuf; - png_memcpy(jmpbuf,info->jmpbuf,sizeof(jmp_buf)); - longjmp(jmpbuf, 1); - } -#else - longjmp(info->jmpbuf, 1); -#endif + wxLogFatalError( wxString::FromAscii(message) ); } void PNGLINKAGEMODE wx_png_warning(png_structp png_ptr, png_const_charp message) { - wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr); - if (info->verbose) + wxPNGInfoStruct *info = png_ptr ? WX_PNG_INFO(png_ptr) : NULL; + if ( !info || info->verbose ) wxLogWarning( wxString::FromAscii(message) ); } @@ -531,15 +519,16 @@ wxPNGHandler::LoadFile(wxImage *image, image->Destroy(); - png_structp png_ptr = png_create_read_struct( PNG_LIBPNG_VER_STRING, - (voidp) NULL, - (png_error_ptr) NULL, - (png_error_ptr) NULL ); + png_structp png_ptr = png_create_read_struct + ( + PNG_LIBPNG_VER_STRING, + (voidp) NULL, + wx_png_error, + wx_png_warning + ); if (!png_ptr) goto error; - png_set_error_fn(png_ptr, (png_voidp)NULL, wx_png_error, wx_png_warning); - // NB: please see the comment near wxPNGInfoStruct declaration for // explanation why this line is mandatory png_set_read_fn( png_ptr, &wxinfo, wx_PNG_stream_reader); @@ -640,7 +629,13 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos wxinfo.verbose = verbose; wxinfo.stream.out = &stream; - png_structp png_ptr = png_create_write_struct( PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + png_structp png_ptr = png_create_write_struct + ( + PNG_LIBPNG_VER_STRING, + NULL, + wx_png_error, + wx_png_warning + ); if (!png_ptr) { if (verbose) @@ -648,8 +643,6 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos return false; } - png_set_error_fn(png_ptr, (png_voidp)NULL, wx_png_error, wx_png_warning); - png_infop info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) {