diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-01-14 11:42:20 +0100 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-01-15 13:10:22 +0000 |
commit | ae8fb3800ac880bfa9805f9163709d96b66b7788 (patch) | |
tree | 8d03a88eea6fd74f69c47566cd95d559bddf2144 /src/qml/qml | |
parent | 0b5ae19f733c7d59e6138c677fe432a0e6f25938 (diff) |
QQmlComponent: Avoid crash when setting initial properties in JS module
In a JS module, we lack a qml context. Thus, we have to check whether
qmlContext is null. In that case we use the engine's scriptContext('s
ExecutionContext) instead.
Fixes: QTBUG-90245
Change-Id: I337e9c7cade472f52fc81c93d1152ff59f8018a5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
(cherry picked from commit e68b498424f63c1cb6151e4fc6bbc50bac584909)
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlcomponent.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index 279befb351..f35c3011d3 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1369,7 +1369,8 @@ void QQmlComponentPrivate::setInitialProperties(QV4::ExecutionEngine *engine, QV if (engine->hasException) return; - QV4::ScopedStackFrame frame(scope, qmlContext->d()); + // js modules (mjs) have no qmlContext + QV4::ScopedStackFrame frame(scope, qmlContext ? qmlContext->d() : engine->scriptContext()->d()); while (1) { name = it.nextPropertyNameAsString(val); |