History

Disallowed incorrect Vec3 to float cast in script engine

ksuprynowicz committed 4 years ago

Commit 4d61d4f1 parent c78ec801 file · +14 −1Browse files

Showing the changes to libraries/script-engine/src/qtscript/ScriptEngineQtScript_cast.cpp (1 of 1 file). Show all

Unified · Split

libraries/script-engine/src/qtscript/ScriptEngineQtScript_cast.cpp+14−1
@@ -4,6 +4,7 @@ · 3 unmodified lines
44 //
55 // Created by Heather Anderson 12/9/2021
66 // Copyright 2021 Vircadia contributors.
7+// Copyright 2022 Overte e.V.
78 //
89 // Distributed under the Apache License, Version 2.0.
910 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -278,17 +279,26 @@ bool ScriptEngineQtScript::castValueToVariant(const QScriptValue& val, QVariant& · 268 unmodified lines
278279 break;
279280 case QMetaType::UInt:
280281 case QMetaType::ULong:
282+ if ( val.isArray() || val.isObject() ){
283+ return false;
284+ }
281285 dest = QVariant::fromValue(val.toUInt32());
282286 break;
283287 case QMetaType::Int:
284288 case QMetaType::Long:
285289 case QMetaType::Short:
290+ if ( val.isArray() || val.isObject() ){
291+ return false;
292+ }
286293 dest = QVariant::fromValue(val.toInt32());
287294 break;
288295 case QMetaType::Double:
289296 case QMetaType::Float:
290297 case QMetaType::ULongLong:
291298 case QMetaType::LongLong:
299+ if ( val.isArray() || val.isObject() ){
300+ return false;
301+ }
292302 dest = QVariant::fromValue(val.toNumber());
293303 break;
294304 case QMetaType::QString:
@@ -296,6 +306,9 @@ bool ScriptEngineQtScript::castValueToVariant(const QScriptValue& val, QVariant& · 1 unmodified line
296306 dest = QVariant::fromValue(val.toString());
297307 break;
298308 case QMetaType::UShort:
309+ if ( val.isArray() || val.isObject() ){
310+ return false;
311+ }
299312 dest = QVariant::fromValue(val.toUInt16());
300313 break;
301314 case QMetaType::QObjectStar:
@@ -444,4 +457,4 @@ QScriptValue ScriptEngineQtScript::castVariantToValue(const QVariant& val) { · 142 unmodified lines
444457 // just do a generic variant
445458 return QScriptEngine::newVariant(val);
446459 }
447−}
460+}