aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8engine.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-01-01 14:25:08 +0100
committerLars Knoll <lars.knoll@digia.com>2015-01-09 10:27:49 +0100
commit2569b795c527ea4c875e68cfeca382d5a9d128af (patch)
tree575684501f3f3b576b010a30fa26998c85924b72 /src/qml/qml/v8/qv8engine.cpp
parent8b03879d572e3346f444d28922b63e7557a4e42d (diff)
Make the remaining variant conversion methods static
And make most private as well Change-Id: If215aba4985a5150aa5a901f2e50e31bf0afa709 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8engine.cpp')
-rw-r--r--src/qml/qml/v8/qv8engine.cpp50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
index d335606361..2234d3d0ca 100644
--- a/src/qml/qml/v8/qv8engine.cpp
+++ b/src/qml/qml/v8/qv8engine.cpp
@@ -588,14 +588,14 @@ QV4::ReturnedValue QV8Engine::global()
// The result is a new Array object with length equal to the length
// of the QVariantList, and the elements being the QVariantList's
// elements converted to JS, recursively.
-QV4::ReturnedValue QV8Engine::variantListToJS(const QVariantList &lst)
+QV4::ReturnedValue QV8Engine::variantListToJS(QV4::ExecutionEngine *v4, const QVariantList &lst)
{
- QV4::Scope scope(m_v4Engine);
- QV4::ScopedArrayObject a(scope, m_v4Engine->newArrayObject());
+ QV4::Scope scope(v4);
+ QV4::ScopedArrayObject a(scope, v4->newArrayObject());
a->arrayReserve(lst.size());
QV4::ScopedValue v(scope);
for (int i = 0; i < lst.size(); i++)
- a->arrayPut(i, (v = variantToJS(lst.at(i))));
+ a->arrayPut(i, (v = variantToJS(v4, lst.at(i))));
a->setArrayLengthUnchecked(lst.size());
return a.asReturnedValue();
}
@@ -604,16 +604,16 @@ QV4::ReturnedValue QV8Engine::variantListToJS(const QVariantList &lst)
// The result is a new Object object with property names being
// the keys of the QVariantMap, and values being the values of
// the QVariantMap converted to JS, recursively.
-QV4::ReturnedValue QV8Engine::variantMapToJS(const QVariantMap &vmap)
+QV4::ReturnedValue QV8Engine::variantMapToJS(QV4::ExecutionEngine *v4, const QVariantMap &vmap)
{
- QV4::Scope scope(m_v4Engine);
- QV4::ScopedObject o(scope, m_v4Engine->newObject());
+ QV4::Scope scope(v4);
+ QV4::ScopedObject o(scope, v4->newObject());
QVariantMap::const_iterator it;
QV4::ScopedString s(scope);
QV4::ScopedValue v(scope);
for (it = vmap.constBegin(); it != vmap.constEnd(); ++it) {
- s = m_v4Engine->newIdentifier(it.key());
- v = variantToJS(it.value());
+ s = v4->newIdentifier(it.key());
+ v = variantToJS(v4, it.value());
uint idx = s->asArrayIndex();
if (idx < UINT_MAX)
o->arraySet(idx, v);
@@ -625,7 +625,7 @@ QV4::ReturnedValue QV8Engine::variantMapToJS(const QVariantMap &vmap)
// Converts the meta-type defined by the given type and data to JS.
// Returns the value if conversion succeeded, an empty handle otherwise.
-QV4::ReturnedValue QV8Engine::metaTypeToJS(int type, const void *data)
+QV4::ReturnedValue QV8Engine::metaTypeToJS(QV4::ExecutionEngine *v4, int type, const void *data)
{
Q_ASSERT(data != 0);
@@ -656,7 +656,7 @@ QV4::ReturnedValue QV8Engine::metaTypeToJS(int type, const void *data)
case QMetaType::Double:
return QV4::Encode(*reinterpret_cast<const double*>(data));
case QMetaType::QString:
- return m_v4Engine->currentContext()->engine->newString(*reinterpret_cast<const QString*>(data))->asReturnedValue();
+ return v4->currentContext()->engine->newString(*reinterpret_cast<const QString*>(data))->asReturnedValue();
case QMetaType::Float:
return QV4::Encode(*reinterpret_cast<const float*>(data));
case QMetaType::Short:
@@ -670,30 +670,30 @@ QV4::ReturnedValue QV8Engine::metaTypeToJS(int type, const void *data)
case QMetaType::QChar:
return QV4::Encode((int)(*reinterpret_cast<const QChar*>(data)).unicode());
case QMetaType::QStringList:
- return QV4::Encode(m_v4Engine->newArrayObject(*reinterpret_cast<const QStringList *>(data)));
+ return QV4::Encode(v4->newArrayObject(*reinterpret_cast<const QStringList *>(data)));
case QMetaType::QVariantList:
- return variantListToJS(*reinterpret_cast<const QVariantList *>(data));
+ return variantListToJS(v4, *reinterpret_cast<const QVariantList *>(data));
case QMetaType::QVariantMap:
- return variantMapToJS(*reinterpret_cast<const QVariantMap *>(data));
+ return variantMapToJS(v4, *reinterpret_cast<const QVariantMap *>(data));
case QMetaType::QDateTime:
- return QV4::Encode(m_v4Engine->newDateObject(*reinterpret_cast<const QDateTime *>(data)));
+ return QV4::Encode(v4->newDateObject(*reinterpret_cast<const QDateTime *>(data)));
case QMetaType::QDate:
- return QV4::Encode(m_v4Engine->newDateObject(QDateTime(*reinterpret_cast<const QDate *>(data))));
+ return QV4::Encode(v4->newDateObject(QDateTime(*reinterpret_cast<const QDate *>(data))));
case QMetaType::QRegExp:
- return QV4::Encode(m_v4Engine->newRegExpObject(*reinterpret_cast<const QRegExp *>(data)));
+ return QV4::Encode(v4->newRegExpObject(*reinterpret_cast<const QRegExp *>(data)));
case QMetaType::QObjectStar:
- return QV4::QObjectWrapper::wrap(m_v4Engine, *reinterpret_cast<QObject* const *>(data));
+ return QV4::QObjectWrapper::wrap(v4, *reinterpret_cast<QObject* const *>(data));
case QMetaType::QVariant:
- return variantToJS(*reinterpret_cast<const QVariant*>(data));
+ return variantToJS(v4, *reinterpret_cast<const QVariant*>(data));
case QMetaType::QJsonValue:
- return QV4::JsonObject::fromJsonValue(m_v4Engine, *reinterpret_cast<const QJsonValue *>(data));
+ return QV4::JsonObject::fromJsonValue(v4, *reinterpret_cast<const QJsonValue *>(data));
case QMetaType::QJsonObject:
- return QV4::JsonObject::fromJsonObject(m_v4Engine, *reinterpret_cast<const QJsonObject *>(data));
+ return QV4::JsonObject::fromJsonObject(v4, *reinterpret_cast<const QJsonObject *>(data));
case QMetaType::QJsonArray:
- return QV4::JsonObject::fromJsonArray(m_v4Engine, *reinterpret_cast<const QJsonArray *>(data));
+ return QV4::JsonObject::fromJsonArray(v4, *reinterpret_cast<const QJsonArray *>(data));
default:
if (type == qMetaTypeId<QJSValue>()) {
- return QJSValuePrivate::get(*reinterpret_cast<const QJSValue*>(data))->getValue(m_v4Engine);
+ return QJSValuePrivate::get(*reinterpret_cast<const QJSValue*>(data))->getValue(v4);
} else {
QByteArray typeName = QMetaType::typeName(type);
if (typeName.endsWith('*') && !*reinterpret_cast<void* const *>(data)) {
@@ -914,9 +914,9 @@ bool QV8Engine::metaTypeFromJS(QV4::ExecutionEngine *engine, const QV4::ValueRef
}
// Converts a QVariant to JS.
-QV4::ReturnedValue QV8Engine::variantToJS(const QVariant &value)
+QV4::ReturnedValue QV8Engine::variantToJS(QV4::ExecutionEngine *v4, const QVariant &value)
{
- return metaTypeToJS(value.userType(), value.constData());
+ return metaTypeToJS(v4, value.userType(), value.constData());
}
bool QV8Engine::convertToNativeQObject(QV4::ExecutionEngine *e, const QV4::ValueRef value, const QByteArray &targetType, void **result)