diff options
-rw-r--r-- | src/quick/items/qquickview.cpp | 2 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 2 | ||||
-rw-r--r-- | tests/auto/quick/qquickview/tst_qquickview.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp | 1 |
4 files changed, 7 insertions, 2 deletions
diff --git a/src/quick/items/qquickview.cpp b/src/quick/items/qquickview.cpp index 0b3cfa17b5..b0b24ca69a 100644 --- a/src/quick/items/qquickview.cpp +++ b/src/quick/items/qquickview.cpp @@ -370,7 +370,7 @@ QList<QQmlError> QQuickView::errors() const QQmlError error; error.setDescription(QLatin1String("QQuickView: invalid qml engine.")); errs << error; - } else if (d->component->status() == QQmlComponent::Ready && !d->root) { + } else if (d->component && d->component->status() == QQmlComponent::Ready && !d->root) { QQmlError error; error.setDescription(QLatin1String("QQuickView: invalid root object.")); errs << error; diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index 5755271fe1..70c9309ab0 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -566,7 +566,7 @@ QList<QQmlError> QQuickWidget::errors() const QQmlError error; error.setDescription(QLatin1String("QQuickWidget: invalid qml engine.")); errs << error; - } else if (d->component->status() == QQmlComponent::Ready && !d->root) { + } else if (d->component && d->component->status() == QQmlComponent::Ready && !d->root) { QQmlError error; error.setDescription(QLatin1String("QQuickWidget: invalid root object.")); errs << error; diff --git a/tests/auto/quick/qquickview/tst_qquickview.cpp b/tests/auto/quick/qquickview/tst_qquickview.cpp index 2f054e278a..69e27984c7 100644 --- a/tests/auto/quick/qquickview/tst_qquickview.cpp +++ b/tests/auto/quick/qquickview/tst_qquickview.cpp @@ -182,6 +182,10 @@ void tst_QQuickView::errors() { { QQuickView view; + QVERIFY(view.errors().isEmpty()); // don't crash + } + { + QQuickView view; QQmlTestMessageHandler messageHandler; view.setSource(testFileUrl("error1.qml")); QCOMPARE(view.status(), QQuickView::Error); diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp index 11696e288f..7cc5dfa7c6 100644 --- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp +++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp @@ -223,6 +223,7 @@ void tst_qquickwidget::errors() { QQuickWidget *view = new QQuickWidget; QScopedPointer<QQuickWidget> cleanupView(view); + QVERIFY(view->errors().isEmpty()); // don't crash QQmlTestMessageHandler messageHandler; view->setSource(testFileUrl("error1.qml")); |