diff options
author | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-07-09 11:03:48 (GMT) |
---|---|---|
committer | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-07-09 11:33:23 (GMT) |
commit | 5bf417cf836636aab1dcadffaa73f26966880dff (patch) | |
tree | 7a98577d2399a06631666a5b2249d5d574bf76bc /src/script/api/qscriptengine.cpp | |
parent | dadfb997897141ccd47808b2e9b38807f0042c53 (diff) | |
download | Qt-5bf417cf836636aab1dcadffaa73f26966880dff.zip Qt-5bf417cf836636aab1dcadffaa73f26966880dff.tar.gz Qt-5bf417cf836636aab1dcadffaa73f26966880dff.tar.bz2 |
Fix autotest checking QScriptValue::objectId method.
(QScriptValue::objectId() and QScriptEnigne::objectById)
Diffstat (limited to 'src/script/api/qscriptengine.cpp')
-rw-r--r-- | src/script/api/qscriptengine.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp index 13e21d2..f2b0cac 100644 --- a/src/script/api/qscriptengine.cpp +++ b/src/script/api/qscriptengine.cpp @@ -826,7 +826,7 @@ ASSERT_CLASS_FITS_IN_CELL(QScript::GlobalObject); } // namespace JSC -QScriptEnginePrivate::QScriptEnginePrivate() +QScriptEnginePrivate::QScriptEnginePrivate() : idGenerator(1) { JSC::initializeThreading(); // ### hmmm @@ -1216,6 +1216,11 @@ bool QScriptEnginePrivate::scriptDisconnect(JSC::JSValue signal, JSC::JSValue re } #endif +void QScriptEnginePrivate::registerScriptValue(QScriptValuePrivate *value) +{ + value->id=idGenerator.fetchAndAddRelaxed(1); + attachedScriptValues.insert(value); +} void QScriptEnginePrivate::detachAllRegisteredScriptValues() { @@ -3328,9 +3333,13 @@ QScriptValue QScriptEngine::toObject(const QScriptValue &value) */ QScriptValue QScriptEngine::objectById(qint64 id) const { - Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented"); - // mapping from id to JSObject*? - Q_UNUSED(id); + Q_D(const QScriptEngine); + QSet<QScriptValuePrivate*>::const_iterator i = d->attachedScriptValues.constBegin(); + while(i != d->attachedScriptValues.constEnd()) { + if ( (*i)->id == id ) + return (*i)->toPublic(); + i++; + } return QScriptValue(); } |