diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-23 15:52:10 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-26 09:05:16 +0200 |
commit | 12fd2ccd3fa2dc0133b5a3fb89f9fdf5cf721232 (patch) | |
tree | 880acb9c7c0d8289185b6aebe4339f439c707a0e /src/quick/items/qquickloader.cpp | |
parent | 2e4f66caa8a5f9e887dbdb4e3f2ae5c9be9a7005 (diff) |
Fix Persistent/WeakValue API
Don't use unprotected Values in the API anymore.
Change-Id: I8851628227fca374de24701bc8ee0908b5ae3923
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
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) |