summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Rødal <[email protected]>2013-02-14 09:02:24 +0100
committerThe Qt Project <[email protected]>2013-02-14 10:55:33 +0100
commit733430636d1a1e0fb49cf0665994f8ec064c8613 (patch)
tree376e46d3f00e5a5104db3f86bff4f712827ba313
parent17e8286fef874630cb2703bd20885c6005bf674a (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.cpp5
-rw-r--r--src/gui/text/qfont.cpp2
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp2
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"