diff options
Diffstat (limited to 'src/script/api/qscriptvalue.cpp')
-rw-r--r-- | src/script/api/qscriptvalue.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp index 41c908d..e512779 100644 --- a/src/script/api/qscriptvalue.cpp +++ b/src/script/api/qscriptvalue.cpp @@ -256,13 +256,14 @@ void QScriptValuePrivate::initFromJSCValue(JSC::JSValue value) { type = JSC; jscValue = value; - if (!JSC::JSImmediate::isImmediate(value)) { + if (value.isCell()) { + JSC::JSCell *cell = value.asCell(); Q_ASSERT(engine != 0); QScriptEnginePrivate *eng_p = QScriptEnginePrivate::get(engine); if (value != eng_p->globalObject) { - if (!eng_p->keepAliveValues.contains(value)) - eng_p->keepAliveValues[value] = 0; - eng_p->keepAliveValues[value].ref(); + if (!eng_p->keepAliveValues.contains(cell)) + eng_p->keepAliveValues[cell] = 0; + eng_p->keepAliveValues[cell].ref(); } } } @@ -347,6 +348,11 @@ QVariant &QScriptValuePrivate::variantValue() const return static_cast<QScript::QVariantWrapperObject*>(JSC::asObject(jscValue))->value(); } +void QScriptValuePrivate::setVariantValue(const QVariant &value) +{ + static_cast<QScript::QVariantWrapperObject*>(JSC::asObject(jscValue))->setValue(value); +} + /*! Constructs an invalid QScriptValue. */ |