X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9c4b1a2b5b926ced938130b2694b869403397cc..dbf3cd7a2b2774d48eeba02b164714653c6a02cd:/src/common/imagpng.cpp diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index e200c00b6d..11655cf352 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -7,9 +7,14 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +/* + We don't put pragma implement in this file because it is already present in + src/common/image.cpp + #ifdef __GNUG__ #pragma implementation "image.h" #endif +*/ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -71,7 +76,7 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream ) // VZ: as this function uses setjmp() the only fool proof error handling // method is to use goto (setjmp is not really C++ dtors friendly...) - unsigned char **lines = (unsigned char **) NULL; + unsigned char **lines; unsigned int i; png_infop info_ptr = (png_infop) NULL; @@ -82,17 +87,17 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream ) (png_error_ptr) NULL, (png_error_ptr) NULL ); if (!png_ptr) - goto error; + goto error_nolines; info_ptr = png_create_info_struct( png_ptr ); if (!info_ptr) - goto error; + goto error_nolines; if (setjmp(png_ptr->jmpbuf)) - goto error; + goto error_nolines; if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - goto error; + goto error_nolines; png_set_read_fn( png_ptr, &stream, _PNG_stream_reader); @@ -114,11 +119,11 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream ) image->Create( width, height ); if (!image->Ok()) - goto error; + goto error_nolines; lines = (unsigned char **)malloc( height * sizeof(unsigned char *) ); if (lines == NULL) - goto error; + goto error_nolines; for (i = 0; i < height; i++) { @@ -206,8 +211,10 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream ) } return TRUE; - -error: + + error_nolines: + lines = NULL; // called from before it was set + error: wxLogError(_("Couldn't load a PNG image - probably file is corrupted.")); if ( image->Ok() )