X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f49300284e2c91095ae3ebe62cb3a6d424eac21..46cd520d1e12e5d2dbe22b46bb2a8b67b808ce42:/src/common/imagpng.cpp?ds=sidebyside diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index cee55ca261..8272a0d383 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -93,6 +93,12 @@ LINKAGEMODE png_silent_warning(png_structp WXUNUSED(png_ptr), png_const_charp WX { } +// temporarily disable the warning C4611 (interaction between '_setjmp' and +// C++ object destruction is non-portable) - I don't see any dtors here +#ifdef __VISUALC__ + #pragma warning(disable:4611) +#endif /* VC++ */ + bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose, int WXUNUSED(index) ) { // VZ: as this function uses setjmp() the only fool proof error handling @@ -141,18 +147,18 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose png_set_expand( png_ptr ); png_set_filler( png_ptr, 0xff, PNG_FILLER_AFTER ); - image->Create( width, height ); + image->Create( (int)width, (int)height ); if (!image->Ok()) goto error_nolines; - lines = (unsigned char **)malloc( height * sizeof(unsigned char *) ); + lines = (unsigned char **)malloc( (size_t)(height * sizeof(unsigned char *)) ); if (lines == NULL) goto error_nolines; for (i = 0; i < height; i++) { - if ((lines[i] = (unsigned char *)malloc(width * (sizeof(unsigned char) * 4))) == NULL) + if ((lines[i] = (unsigned char *)malloc( (size_t)(width * (sizeof(unsigned char) * 4)))) == NULL) { for ( unsigned int n = 0; n < i; n++ ) free( lines[n] ); @@ -267,7 +273,6 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose return FALSE; } - bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbose ) { { @@ -346,6 +351,10 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos return TRUE; } +#ifdef __VISUALC__ + #pragma warning(default:4611) +#endif /* VC++ */ + bool wxPNGHandler::DoCanRead( wxInputStream& stream ) { unsigned char hdr[4];