From d10c19d6e00f98e61ae6c4487768227613a05b00 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 27 Oct 2004 22:58:29 +0000 Subject: [PATCH] use wx_png_error/warning when calling png_create_read/write_struct(), don't return from wx_png_error git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/imagpng.cpp | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index 8b5d4cd9f2..b2925a2a8c 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -177,26 +177,14 @@ void PNGLINKAGEMODE wx_PNG_stream_writer( png_structp png_ptr, png_bytep data, void PNGLINKAGEMODE wx_png_error(png_structp 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,10 +519,13 @@ 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; @@ -640,7 +631,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)