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 10:47:05 +0100 |
commit | e68b498424f63c1cb6151e4fc6bbc50bac584909 (patch) | |
tree | 9ec44f46e38ad0c517b4abb1517d98e33b1797f6 /src/qml/qml | |
parent | dccd8f0b5ca8f6faefb49718e33f9090243f3202 (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>
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); |