diff -r cc75c76972ee -r c0432d11811c src/gui/image/qimage.cpp --- a/src/gui/image/qimage.cpp Wed Apr 21 12:15:23 2010 +0300 +++ b/src/gui/image/qimage.cpp Wed Apr 21 20:15:53 2010 +0300 @@ -118,8 +118,8 @@ return &image.d->colortable; } -extern int qt_defaultDpiX(); -extern int qt_defaultDpiY(); +Q_GUI_EXPORT extern int qt_defaultDpiX(); +Q_GUI_EXPORT extern int qt_defaultDpiY(); QBasicAtomicInt qimage_serial_number = Q_BASIC_ATOMIC_INITIALIZER(1); @@ -5667,7 +5667,11 @@ detach(); - *this = convertToFormat(QImage::Format_ARGB32_Premultiplied); + QImage converted = convertToFormat(QImage::Format_ARGB32_Premultiplied); + if (!converted.isNull()) + *this = converted; + else + return; // Slight optimization since alphachannels are returned as 8-bit grays. if (alphaChannel.d->depth == 8 && alphaChannel.isGrayscale()) {