summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qcoregraphics.mm2
-rw-r--r--tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp10
2 files changed, 12 insertions, 0 deletions
diff --git a/src/gui/painting/qcoregraphics.mm b/src/gui/painting/qcoregraphics.mm
index 803328c10f..3753fa4e88 100644
--- a/src/gui/painting/qcoregraphics.mm
+++ b/src/gui/painting/qcoregraphics.mm
@@ -157,6 +157,8 @@ NSImage *qt_mac_create_nsimage(const QIcon &icon, int defaultSize)
availableSizes << QSize(defaultSize, defaultSize);
foreach (QSize size, availableSizes) {
QPixmap pm = icon.pixmap(size);
+ if (pm.isNull())
+ continue;
QImage image = pm.toImage();
CGImageRef cgImage = qt_mac_toCGImage(image);
NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithCGImage:cgImage];
diff --git a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp
index f19d7619cc..e3af0135e7 100644
--- a/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp
+++ b/tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp
@@ -136,6 +136,7 @@ private slots:
void QTBUG_57404_existingMenuItemException();
#endif
void taskQTBUG55966_subMenuRemoved();
+ void QTBUG_58344_invalidIcon();
void platformMenu();
@@ -1594,5 +1595,14 @@ void tst_QMenuBar::taskQTBUG55966_subMenuRemoved()
QTest::qWait(500);
}
+void tst_QMenuBar::QTBUG_58344_invalidIcon()
+{
+ QMenuBar menuBar;
+ QMenu menu("menu");
+ menu.addAction(QIcon("crash.png"), "crash");
+ menuBar.addMenu(&menu);
+ // No crash, all fine.
+}
+
QTEST_MAIN(tst_QMenuBar)
#include "tst_qmenubar.moc"