diff options
author | Samuel Rødal <[email protected]> | 2013-02-14 09:02:24 +0100 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-02-14 10:55:33 +0100 |
commit | 733430636d1a1e0fb49cf0665994f8ec064c8613 (patch) | |
tree | 376e46d3f00e5a5104db3f86bff4f712827ba313 | |
parent | 17e8286fef874630cb2703bd20885c6005bf674a (diff) |
Fixed crashes when using QImage in combination with QCoreApplication.
As long as fonts weren't used we supported using QImage in combination
with QCoreApplication in 4.x, and there's no reason we can't continue
doing so.
Task-number: QTBUG-29643
Change-Id: I2cf351d3c93f1c175bbf624e45024d39ab913111
Reviewed-by: Friedemann Kleint <[email protected]>
Reviewed-by: Gunnar Sletta <[email protected]>
Reviewed-by: Konstantin Ritt <[email protected]>
-rw-r--r-- | src/gui/image/qimage.cpp | 5 | ||||
-rw-r--r-- | src/gui/text/qfont.cpp | 2 | ||||
-rw-r--r-- | tests/auto/gui/image/qimage/tst_qimage.cpp | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 975ef54d6b0..481cb37c8cc 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -4944,7 +4944,10 @@ QPaintEngine *QImage::paintEngine() const if (!d->paintEngine) { QPaintDevice *paintDevice = const_cast<QImage *>(this); - QPaintEngine *paintEngine = QGuiApplicationPrivate::platformIntegration()->createImagePaintEngine(paintDevice); + QPaintEngine *paintEngine = 0; + QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration(); + if (platformIntegration) + paintEngine = platformIntegration->createImagePaintEngine(paintDevice); d->paintEngine = paintEngine ? paintEngine : new QRasterPaintEngine(paintDevice); } diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 72a24a46987..2961cb94934 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -672,7 +672,7 @@ void QFontPrivate::detachButKeepEngineData(QFont *font) \sa QGuiApplication::setFont(), QGuiApplication::font() */ QFont::QFont() - : d(QGuiApplication::font().d.data()), resolve_mask(0) + : d(QGuiApplicationPrivate::instance() ? QGuiApplication::font().d.data() : new QFontPrivate()), resolve_mask(0) { } diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index b668f579093..2cd5216c593 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -2115,5 +2115,5 @@ void tst_QImage::cleanupFunctions() } -QTEST_MAIN(tst_QImage) +QTEST_GUILESS_MAIN(tst_QImage) #include "tst_qimage.moc" |