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
This commit is contained in:
Vadim Zeitlin
2004-10-27 22:58:29 +00:00
parent 01b5396fce
commit d10c19d6e0

View File

@@ -177,26 +177,14 @@ void PNGLINKAGEMODE wx_PNG_stream_writer( png_structp png_ptr, png_bytep data,
void void
PNGLINKAGEMODE wx_png_error(png_structp png_ptr, png_const_charp message) PNGLINKAGEMODE wx_png_error(png_structp png_ptr, png_const_charp message)
{ {
wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr); wxLogFatalError( wxString::FromAscii(message) );
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
} }
void void
PNGLINKAGEMODE wx_png_warning(png_structp png_ptr, png_const_charp message) PNGLINKAGEMODE wx_png_warning(png_structp png_ptr, png_const_charp message)
{ {
wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr); wxPNGInfoStruct *info = png_ptr ? WX_PNG_INFO(png_ptr) : NULL;
if (info->verbose) if ( !info || info->verbose )
wxLogWarning( wxString::FromAscii(message) ); wxLogWarning( wxString::FromAscii(message) );
} }
@@ -531,10 +519,13 @@ wxPNGHandler::LoadFile(wxImage *image,
image->Destroy(); image->Destroy();
png_structp png_ptr = png_create_read_struct( PNG_LIBPNG_VER_STRING, png_structp png_ptr = png_create_read_struct
(voidp) NULL, (
(png_error_ptr) NULL, PNG_LIBPNG_VER_STRING,
(png_error_ptr) NULL ); (voidp) NULL,
wx_png_error,
wx_png_warning
);
if (!png_ptr) if (!png_ptr)
goto error; goto error;
@@ -640,7 +631,13 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
wxinfo.verbose = verbose; wxinfo.verbose = verbose;
wxinfo.stream.out = &stream; 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 (!png_ptr)
{ {
if (verbose) if (verbose)