diff options
Diffstat (limited to 'src/declarative/qml/v8/qv8engine_impl_p.h')
-rw-r--r-- | src/declarative/qml/v8/qv8engine_impl_p.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/declarative/qml/v8/qv8engine_impl_p.h b/src/declarative/qml/v8/qv8engine_impl_p.h index 382e221f5a..53ce2a5acd 100644 --- a/src/declarative/qml/v8/qv8engine_impl_p.h +++ b/src/declarative/qml/v8/qv8engine_impl_p.h @@ -99,9 +99,10 @@ inline void QV8Engine::unregisterValue(QJSValuePrivate *data) inline void QV8Engine::invalidateAllValues() { - QtScriptBagCleaner invalidator; - m_values.forEach(invalidator); - m_values.clear(); + ValueList::iterator it; + for (it = m_values.begin(); it != m_values.end(); it = it.erase()) + (*it)->invalidate(); + Q_ASSERT(m_values.isEmpty()); } inline void QV8Engine::registerValueIterator(QJSValueIteratorPrivate *data) @@ -116,9 +117,10 @@ inline void QV8Engine::unregisterValueIterator(QJSValueIteratorPrivate *data) inline void QV8Engine::invalidateAllIterators() { - QtScriptBagCleaner invalidator; - m_valueIterators.forEach(invalidator); - m_valueIterators.clear(); + ValueIteratorList::iterator it; + for (it = m_valueIterators.begin(); it != m_valueIterators.end(); it = it.erase()) + (*it)->invalidate(); + Q_ASSERT(m_valueIterators.isEmpty()); } /*! |