]> git.saurik.com Git - wxWidgets.git/commitdiff
don't free "static" alpha data (patch 1738966)
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 20 Jun 2007 00:10:35 +0000 (00:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 20 Jun 2007 00:10:35 +0000 (00:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46548 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
src/common/image.cpp

index 2e3ce8a69dd74b0168a9da85419eb96e13dcdad8..b91724b5b9f0f29b0db2337b01bdf722d5a29acf 100644 (file)
@@ -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:
 
index 6df19503b26ffa72badadeb68bd058ad8d3cead8..92bbdde513e35aa9b79f661b82216eaf62e860cc 100644 (file)
@@ -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;
 }