diff options
-rw-r--r-- | src/quick/items/qquickloader.cpp | 2 | ||||
-rw-r--r-- | tests/auto/quick/qquickloader/tst_qquickloader.cpp | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/quick/items/qquickloader.cpp b/src/quick/items/qquickloader.cpp index f1e70c14f4..d5a822c26f 100644 --- a/src/quick/items/qquickloader.cpp +++ b/src/quick/items/qquickloader.cpp @@ -963,6 +963,8 @@ QUrl QQuickLoaderPrivate::resolveSourceUrl(QQmlV4Function *args) { QV4::Scope scope(args->v4engine()); QV4::ScopedValue v(scope, (*args)[0]); + if (v->isUndefined()) + return QUrl(); QString arg = v->toQString(); return arg.isEmpty() ? QUrl() : scope.engine->callingQmlContext()->resolvedUrl(QUrl(arg)); } diff --git a/tests/auto/quick/qquickloader/tst_qquickloader.cpp b/tests/auto/quick/qquickloader/tst_qquickloader.cpp index ed3aa09767..a53b08d1b7 100644 --- a/tests/auto/quick/qquickloader/tst_qquickloader.cpp +++ b/tests/auto/quick/qquickloader/tst_qquickloader.cpp @@ -1491,6 +1491,9 @@ void tst_QQuickLoader::setSourceAndCheckStatus() QMetaObject::invokeMethod(loader, "load", Q_ARG(QVariant, QVariant::fromValue(QStringLiteral("")))); QCOMPARE(loader->status(), QQuickLoader::Null); + + QMetaObject::invokeMethod(loader, "load", Q_ARG(QVariant, QVariant())); + QCOMPARE(loader->status(), QQuickLoader::Null); } QTEST_MAIN(tst_QQuickLoader) |