diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-01 16:15:01 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-01 16:15:01 (GMT) |
commit | c272d672fc1863f9e3a201e93ad277c734749845 (patch) | |
tree | 76676724c821878811841b817110438a52be820f /src/script/api/qscriptvalueiterator.cpp | |
parent | 5fb8d729ddf56003af326ba4c9dbff56b57ed105 (diff) | |
parent | 7c939ad26e2d79a5c72ace724dfa2a3be8e398b3 (diff) | |
download | Qt-c272d672fc1863f9e3a201e93ad277c734749845.zip Qt-c272d672fc1863f9e3a201e93ad277c734749845.tar.gz Qt-c272d672fc1863f9e3a201e93ad277c734749845.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (67 commits)
Skip tst_QGraphicsItem::updateMicroFocus test on Windows and Mac as it does not passes
QScript: more missing APIShim
Fix compilation warnings
QScript: fix compilation warning
QScript: fix APIShim usage.
QtScript: remove duplicated APIshim in QScriptValueIterator
Attempt to fix the test.
Total makeover of SVG image reader
Add a QGraphicsItem::updateMicroFocus() to QGraphicsItem.
Micro optimization after feedback from Jan-Arve.
Show only one dialog when using QFileDialog on Mac.
Re-fix compilation: re-add symbols introduced in Qt 4.6.3 to Qt 4.7
Fix bad merge from 4.6.
Doc: Updated the qdoc manual with i18n info. Fixed a code example.
Fix QStaticText test on Mac
Support the pen set on the painter in QStaticText when using rich text
Fix setting font for QStaticText on Linux and Mac
Hack .pro files on windows to define QT_NO_EGL
Fix QDate::isLeapYear() for years < 1
One more test for chinese codecs
...
Diffstat (limited to 'src/script/api/qscriptvalueiterator.cpp')
-rw-r--r-- | src/script/api/qscriptvalueiterator.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/script/api/qscriptvalueiterator.cpp b/src/script/api/qscriptvalueiterator.cpp index c58c046..ecda5fc 100644 --- a/src/script/api/qscriptvalueiterator.cpp +++ b/src/script/api/qscriptvalueiterator.cpp @@ -85,6 +85,17 @@ public: : initialized(false) {} + ~QScriptValueIteratorPrivate() + { + if (!initialized) + return; + QScriptEnginePrivate *eng_p = engine(); + if (!eng_p) + return; + QScript::APIShim shim(eng_p); + propertyNames.clear(); //destroying the identifiers need to be done under the APIShim guard + } + QScriptValuePrivate *object() const { return QScriptValuePrivate::get(objectValue); @@ -139,12 +150,6 @@ QScriptValueIterator::QScriptValueIterator(const QScriptValue &object) */ QScriptValueIterator::~QScriptValueIterator() { - Q_D(QScriptValueIterator); - if (d && d->engine()) { - // Make sure identifiers are removed from the correct engine. - QScript::APIShim shim(d->engine()); - d->propertyNames.clear(); - } } /*! @@ -287,6 +292,7 @@ QScriptValue QScriptValueIterator::value() const Q_D(const QScriptValueIterator); if (!d || !d->initialized || !d->engine()) return QScriptValue(); + QScript::APIShim shim(d->engine()); JSC::JSValue jsValue = d->object()->property(*d->current); return d->engine()->scriptValueFromJSCValue(jsValue); } @@ -302,6 +308,7 @@ void QScriptValueIterator::setValue(const QScriptValue &value) Q_D(QScriptValueIterator); if (!d || !d->initialized || !d->engine()) return; + QScript::APIShim shim(d->engine()); JSC::JSValue jsValue = d->engine()->scriptValueToJSCValue(value); d->object()->setProperty(*d->current, jsValue); } @@ -317,6 +324,7 @@ QScriptValue::PropertyFlags QScriptValueIterator::flags() const Q_D(const QScriptValueIterator); if (!d || !d->initialized || !d->engine()) return 0; + QScript::APIShim shim(d->engine()); return d->object()->propertyFlags(*d->current); } @@ -331,6 +339,7 @@ void QScriptValueIterator::remove() Q_D(QScriptValueIterator); if (!d || !d->initialized || !d->engine()) return; + QScript::APIShim shim(d->engine()); d->object()->setProperty(*d->current, JSC::JSValue()); d->propertyNames.erase(d->current); } |