diff options
Diffstat (limited to 'src/quick/items/qquickloader.cpp')
-rw-r--r-- | src/quick/items/qquickloader.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/quick/items/qquickloader.cpp b/src/quick/items/qquickloader.cpp index 3dee563de2..63490ef2cc 100644 --- a/src/quick/items/qquickloader.cpp +++ b/src/quick/items/qquickloader.cpp @@ -577,8 +577,8 @@ void QQuickLoader::setSource(QQmlV4Function *args) QUrl sourceUrl = d->resolveSourceUrl(args); if (!ipv.isUndefined()) { d->disposeInitialPropertyValues(); - d->initialPropertyValues = ipv; - d->qmlGlobalForIpv = args->qmlGlobal(); + d->initialPropertyValues = ipv.asReturnedValue(); + d->qmlGlobalForIpv = args->qmlGlobal().asReturnedValue(); } setSource(sourceUrl, false); // already cleared and set ipv above. @@ -644,7 +644,11 @@ void QQuickLoaderPrivate::setInitialState(QObject *obj) QQmlComponentPrivate *d = QQmlComponentPrivate::get(component); Q_ASSERT(d && d->engine); - d->initializeObjectWithInitialProperties(qmlGlobalForIpv.value(), initialPropertyValues.value(), obj); + QV4::ExecutionEngine *v4 = qmlGlobalForIpv.engine(); + Q_ASSERT(v4); + QV4::Scope scope(v4); + QV4::ScopedValue ipv(scope, initialPropertyValues.value()); + d->initializeObjectWithInitialProperties(qmlGlobalForIpv, ipv, obj); } void QQuickLoaderIncubator::statusChanged(Status status) |