diff --git a/docs/changes.txt b/docs/changes.txt index e19929f7fe..aa9cfbb8c5 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -603,6 +603,7 @@ wxMSW: wxOSX: +- Fix conversion of wxBitmap to wxImage in 64 bit builds. - Fix wxFileDialog::GetFilterIndex() for file open dialogs (phsilva). diff --git a/src/osx/core/bitmap.cpp b/src/osx/core/bitmap.cpp index eff226cd14..c1bf6b7113 100644 --- a/src/osx/core/bitmap.cpp +++ b/src/osx/core/bitmap.cpp @@ -1422,13 +1422,12 @@ wxImage wxBitmap::ConvertToImage() const for (int yy = 0; yy < height; yy++ , sourcestart += M_BITMAPDATA->GetBytesPerRow() , mask += maskBytesPerRow ) { unsigned char * maskp = mask ; - unsigned char * source = sourcestart; + const wxUint32 * source = (wxUint32*)sourcestart; unsigned char a, r, g, b; - long color; for (int xx = 0; xx < width; xx++) { - color = *((long*) source) ; + const wxUint32 color = *source++; #ifdef WORDS_BIGENDIAN a = ((color&0xFF000000) >> 24) ; r = ((color&0x00FF0000) >> 16) ; @@ -1470,7 +1469,6 @@ wxImage wxBitmap::ConvertToImage() const data[index + 2] = b ; index += 3; - source += 4 ; } }