diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-04-14 12:28:18 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-04-14 12:28:18 +0200 |
commit | 83aff8d6acd0b5beabe26a5ae6518bb0a4d0567b (patch) | |
tree | 6c265dfc2d5d218fee95b8c0f6571158b6e0f123 /src | |
parent | 74bdd7b588528ecdbffa3872706a9ada2b83b716 (diff) | |
parent | 101799f8acdbfc4ebd05f37a7c09544d24b41af1 (diff) |
Merge remote-tracking branch 'origin/5.12.8' into 5.12
Change-Id: I064b346257bd24160f5b54770b2ee6ed6075e22d
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index b22d1530e2..5d7a2130b2 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -192,7 +192,11 @@ ReturnedValue QQmlValueTypeWrapper::create(ExecutionEngine *engine, QObject *obj r->d()->object = object; r->d()->property = property; r->d()->setPropertyCache(QJSEnginePrivate::get(engine)->cache(metaObject)); - r->d()->valueType = QQmlValueTypeFactory::valueType(typeId); + auto valueType = QQmlValueTypeFactory::valueType(typeId); + if (!valueType) { + return engine->throwTypeError(QString::fromLatin1("Type %1 is not a value type").arg(QString::fromLocal8Bit(QMetaType::typeName(typeId)))); + } + r->d()->valueType = valueType; r->d()->gadgetPtr = nullptr; return r->asReturnedValue(); } @@ -204,7 +208,11 @@ ReturnedValue QQmlValueTypeWrapper::create(ExecutionEngine *engine, const QVaria Scoped<QQmlValueTypeWrapper> r(scope, engine->memoryManager->allocate<QQmlValueTypeWrapper>()); r->d()->setPropertyCache(QJSEnginePrivate::get(engine)->cache(metaObject)); - r->d()->valueType = QQmlValueTypeFactory::valueType(typeId); + auto valueType = QQmlValueTypeFactory::valueType(typeId); + if (!valueType) { + return engine->throwTypeError(QString::fromLatin1("Type %1 is not a value type").arg(QString::fromLocal8Bit(QMetaType::typeName(typeId)))); + } + r->d()->valueType = valueType; r->d()->gadgetPtr = nullptr; r->d()->setValue(value); return r->asReturnedValue(); |