diff -r 56cd8111b7f7 -r 41300fa6a67c src/gui/image/qpixmap_qws.cpp --- a/src/gui/image/qpixmap_qws.cpp Tue Jan 26 12:42:25 2010 +0200 +++ b/src/gui/image/qpixmap_qws.cpp Tue Feb 02 00:43:10 2010 +0200 @@ -114,7 +114,7 @@ QRgb* QPixmap::clut() const { - if (data->classId() == QPixmapData::RasterClass) { + if (data && data->classId() == QPixmapData::RasterClass) { const QRasterPixmapData *d = static_cast(data.data()); return d->image.colorTable().data(); } @@ -124,9 +124,14 @@ int QPixmap::numCols() const { - if (data->classId() == QPixmapData::RasterClass) { + return colorCount(); +} + +int QPixmap::colorCount() const +{ + if (data && data->classId() == QPixmapData::RasterClass) { const QRasterPixmapData *d = static_cast(data.data()); - return d->image.numColors(); + return d->image.colorCount(); } return 0; @@ -134,7 +139,7 @@ const uchar* QPixmap::qwsBits() const { - if (data->classId() == QPixmapData::RasterClass) { + if (data && data->classId() == QPixmapData::RasterClass) { const QRasterPixmapData *d = static_cast(data.data()); return d->image.bits(); } @@ -144,7 +149,7 @@ int QPixmap::qwsBytesPerLine() const { - if (data->classId() == QPixmapData::RasterClass) { + if (data && data->classId() == QPixmapData::RasterClass) { const QRasterPixmapData *d = static_cast(data.data()); return d->image.bytesPerLine(); }