diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-12-06 11:29:43 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-06 21:51:04 +0100 |
commit | 32b7e01558e0d3c50dd10f846182fe5dc09686e9 (patch) | |
tree | 0d3cfeaca25f3e670edb6a848e94eca197477839 /src/qml/qml/v8 | |
parent | 24e2b39e7a06687322a18a158a083eb51a7c0dca (diff) |
Clean up handling of illegal names and enable in new compiler
Access to the identifier hash may not be thread-safe from the loader thread, so
use a QSet copy instead (which is cheap because we don't detach).
This also enables the checking for illegal types again.
Change-Id: I8c3ec1fd0fc01cce3269e206f479a90bdbbc89dd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/v8')
-rw-r--r-- | src/qml/qml/v8/qv8engine.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8engine_p.h | 4 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 88d56bf676..1e7fdbc316 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -361,7 +361,7 @@ QNetworkAccessManager *QV8Engine::networkAccessManager() return QQmlEnginePrivate::get(m_engine)->getNetworkAccessManager(); } -const QV4::IdentifierHash<bool> &QV8Engine::illegalNames() const +const QSet<QString> &QV8Engine::illegalNames() const { return m_illegalNames; } @@ -437,9 +437,8 @@ void QV8Engine::initializeGlobal() qt_add_sqlexceptions(m_v4Engine); { - m_illegalNames = QV4::IdentifierHash<bool>(m_v4Engine); for (uint i = 0; i < m_v4Engine->globalObject->internalClass->size; ++i) - m_illegalNames.add(m_v4Engine->globalObject->internalClass->nameMap.at(i)->toQString(), true); + m_illegalNames.insert(m_v4Engine->globalObject->internalClass->nameMap.at(i)->toQString()); } { diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h index e37b0d4920..5d1005b479 100644 --- a/src/qml/qml/v8/qv8engine_p.h +++ b/src/qml/qml/v8/qv8engine_p.h @@ -217,7 +217,7 @@ public: virtual QNetworkAccessManager *networkAccessManager(); // Return the list of illegal id names (the names of the properties on the global object) - const QV4::IdentifierHash<bool> &illegalNames() const; + const QSet<QString> &illegalNames() const; void gc(); @@ -268,7 +268,7 @@ protected: QVector<Deletable *> m_extensionData; Deletable *m_listModelData; - QV4::IdentifierHash<bool> m_illegalNames; + QSet<QString> m_illegalNames; QElapsedTimer m_time; QHash<QString, qint64> m_startedTimers; |