aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8engine_p.h
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-08-16 12:16:38 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-20 13:24:10 +0200
commit2791a13757912cfd0d5cc6a83f228fab5c1645ae (patch)
treeb2af45be626615d645deb8a7240846c524c94828 /src/qml/qml/v8/qv8engine_p.h
parent1af0e1ec5110e4226e2525970c5a2761e5c781f4 (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.h14
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;