summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/image/qpixmap_s60.cpp5
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp8
2 files changed, 12 insertions, 1 deletions
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index 58b3ee4..ab19924 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -202,10 +202,13 @@ return a null QPixmap.
QPixmap QPixmap::fromSymbianCFbsBitmap(CFbsBitmap *bitmap)
{
+ if (!bitmap)
+ return QPixmap();
+
int width = bitmap->SizeInPixels().iWidth;
int height = bitmap->SizeInPixels().iHeight;
- if (!bitmap || width <= 0 || height <= 0 || bitmap->IsCompressedInRAM())
+ if (width <= 0 || height <= 0 || bitmap->IsCompressedInRAM())
return QPixmap();
TDisplayMode displayMode = bitmap->DisplayMode();
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index 7321fe9..35d4cf3 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -1011,6 +1011,14 @@ void tst_QPixmap::fromSymbianCFbsBitmap()
bitmapContext->Clear();
__UHEAP_MARK;
+ { // Test the null case
+ CFbsBitmap *bitmap = 0;
+ QPixmap pixmap = QPixmap::fromSymbianCFbsBitmap(bitmap);
+ QVERIFY(pixmap.isNull());
+ }
+ __UHEAP_MARKEND;
+
+ __UHEAP_MARK;
{ // Test the normal case
QPixmap pixmap = QPixmap::fromSymbianCFbsBitmap(nativeBitmap);
// QCOMPARE(pixmap.depth(), expectedDepth); // Depth is not preserved now