diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-08-16 12:16:38 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-20 13:24:10 +0200 |
commit | 2791a13757912cfd0d5cc6a83f228fab5c1645ae (patch) | |
tree | b2af45be626615d645deb8a7240846c524c94828 /src/qml/qml/v8/qv8engine_p.h | |
parent | 1af0e1ec5110e4226e2525970c5a2761e5c781f4 (diff) |
Get rid of engine-wide state of visited objects for type conversion
Pass the state through to internal conversion functions instead.
Change-Id: Ifab9a9472d7271ee5da103ed915427dfd4f2b15b
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8engine_p.h')
-rw-r--r-- | src/qml/qml/v8/qv8engine_p.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h index 7b0afafe7f..d885c777f7 100644 --- a/src/qml/qml/v8/qv8engine_p.h +++ b/src/qml/qml/v8/qv8engine_p.h @@ -371,13 +371,16 @@ public: v8::Local<v8::Object> newVariant(const QVariant &variant); v8::Local<v8::Array> variantListToJS(const QVariantList &lst); - QVariantList variantListFromJS(v8::Handle<v8::Array> jsArray); + inline QVariantList variantListFromJS(v8::Handle<v8::Array> jsArray) + { QSet<int> visitedObjects; return variantListFromJS(jsArray, visitedObjects); } v8::Local<v8::Object> variantMapToJS(const QVariantMap &vmap); - QVariantMap variantMapFromJS(v8::Handle<v8::Object> jsObject); + inline QVariantMap variantMapFromJS(v8::Handle<v8::Object> jsObject) + { QSet<int> visitedObjects; return variantMapFromJS(jsObject, visitedObjects); } v8::Handle<v8::Value> variantToJS(const QVariant &value); - QVariant variantFromJS(v8::Handle<v8::Value> value); + inline QVariant variantFromJS(v8::Handle<v8::Value> value) + { QSet<int> visitedObjects; return variantFromJS(value, visitedObjects); } v8::Handle<v8::Value> jsonValueToJS(const QJsonValue &value); QJsonValue jsonValueFromJS(v8::Handle<v8::Value> value); @@ -405,7 +408,6 @@ public: int consoleCountHelper(const QString &file, quint16 line, quint16 column); QObject *qtObjectFromJS(v8::Handle<v8::Value> value); - QSet<int> visitedConversionObjects; static QDateTime qtDateTimeFromJsDate(double jsDate); @@ -472,6 +474,10 @@ protected: double qtDateTimeToJsDate(const QDateTime &dt); private: + QVariantList variantListFromJS(v8::Handle<v8::Array> jsArray, QSet<int> &visitedObjects); + QVariantMap variantMapFromJS(v8::Handle<v8::Object> jsObject, QSet<int> &visitedObjects); + QVariant variantFromJS(v8::Handle<v8::Value> value, QSet<int> &visitedObjects); + static v8::Persistent<v8::Object> *findOwnerAndStrength(QObject *object, bool *shouldBeStrong); typedef QScriptIntrusiveList<QJSValuePrivate, &QJSValuePrivate::m_node> ValueList; |