diff options
-rw-r--r-- | src/script/api/qscriptengine.h | 5 | ||||
-rw-r--r-- | tests/auto/qscriptengine/tst_qscriptengine.cpp | 7 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/script/api/qscriptengine.h b/src/script/api/qscriptengine.h index c1b353a..caafd57 100644 --- a/src/script/api/qscriptengine.h +++ b/src/script/api/qscriptengine.h @@ -337,10 +337,7 @@ inline QScriptValue qScriptValueFromValue(QScriptEngine *engine, const T &t) template <> inline QScriptValue qScriptValueFromValue<QVariant>(QScriptEngine *engine, const QVariant &v) { - QScriptValue result = qScriptValueFromValue_helper(engine, v.userType(), v.data()); - if (!result.isValid()) - result = engine->newVariant(v); - return result; + return qScriptValueFromValue_helper(engine, v.userType(), v.data()); } inline bool qscriptvalue_cast_helper(const QScriptValue &value, int type, void *ptr) diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index 5028b47..00cd4a4 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -120,6 +120,7 @@ private slots: void uncaughtException(); void errorMessage_QT679(); void valueConversion(); + void qScriptValueFromValue_noEngine(); void importExtension(); void infiniteRecursion(); void castWithPrototypeChain(); @@ -2230,6 +2231,12 @@ void tst_QScriptEngine::valueConversion() } } +void tst_QScriptEngine::qScriptValueFromValue_noEngine() +{ + QVERIFY(!qScriptValueFromValue(0, 123).isValid()); + QVERIFY(!qScriptValueFromValue(0, QVariant(123)).isValid()); +} + static QScriptValue __import__(QScriptContext *ctx, QScriptEngine *eng) { return eng->importExtension(ctx->argument(0).toString()); |