diff --git a/docs/changes.txt b/docs/changes.txt index 2e3ce8a69d..b91724b5b9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -167,6 +167,7 @@ wxX11: All (GUI): - Added colour normalization to PNM image handler (Ray Johnston) +- Fixed freeing of "static" alpha data in wxImage (Axel Gembe) wxMSW: diff --git a/src/common/image.cpp b/src/common/image.cpp index 6df19503b2..92bbdde513 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -1665,7 +1665,9 @@ void wxImage::SetAlpha( unsigned char *alpha, bool static_data ) alpha = (unsigned char *)malloc(M_IMGDATA->m_width*M_IMGDATA->m_height); } - free(M_IMGDATA->m_alpha); + if( !M_IMGDATA->m_staticAlpha ) + free(M_IMGDATA->m_alpha); + M_IMGDATA->m_alpha = alpha; M_IMGDATA->m_staticAlpha = static_data; } @@ -1898,8 +1900,11 @@ bool wxImage::ConvertAlphaToMask(unsigned char threshold) } } - free(M_IMGDATA->m_alpha); + if( !M_IMGDATA->m_staticAlpha ) + free(M_IMGDATA->m_alpha); + M_IMGDATA->m_alpha = NULL; + M_IMGDATA->m_staticAlpha = false; return true; }