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:
@@ -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)
|
||||||
|
Reference in New Issue
Block a user