aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-27 09:45:55 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-30 08:05:46 +0200
commit0e36db9f1179d1bdf0710494e98ff7aee1a2d836 (patch)
treee9f00fe028ee24b4412e3bb8418a3381e81c772b /src/qml/qml/v8
parent472c8e6bed0b18c4e853c905ace07a09c64c29d2 (diff)
Remove most uses of Value from qml/qml
Change-Id: I409a8505a9e01f86d777bc694d24516d1c8f0c4d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8')
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions.cpp52
-rw-r--r--src/qml/qml/v8/qv8engine.cpp10
2 files changed, 32 insertions, 30 deletions
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
index 926b5c34d8..e92eb40037 100644
--- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
+++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
@@ -1072,10 +1072,10 @@ use \l{QtQml2::Qt::createQmlObject()}{Qt.createQmlObject()}.
*/
ReturnedValue QtObject::method_createComponent(SimpleCallContext *ctx)
{
- const QString invalidArgs = QStringLiteral("Qt.createComponent(): Invalid arguments");
- const QString invalidParent = QStringLiteral("Qt.createComponent(): Invalid parent object");
if (ctx->callData->argc < 1 || ctx->callData->argc > 3)
- ctx->throwError(invalidArgs);
+ ctx->throwError(QStringLiteral("Qt.createComponent(): Invalid arguments"));
+
+ Scope scope(ctx);
QV8Engine *v8engine = ctx->engine->v8Engine;
QQmlEngine *engine = v8engine->engine();
@@ -1095,31 +1095,32 @@ ReturnedValue QtObject::method_createComponent(SimpleCallContext *ctx)
int consumedCount = 1;
if (ctx->callData->argc > 1) {
- Value lastArg = ctx->callData->args[ctx->callData->argc-1];
+ ScopedValue lastArg(scope, ctx->callData->args[ctx->callData->argc-1]);
// The second argument could be the mode enum
if (ctx->callData->args[1].isInteger()) {
int mode = ctx->callData->args[1].integerValue();
if (mode != int(QQmlComponent::PreferSynchronous) && mode != int(QQmlComponent::Asynchronous))
- ctx->throwError(invalidArgs);
+ ctx->throwError(QStringLiteral("Qt.createComponent(): Invalid arguments"));
compileMode = QQmlComponent::CompilationMode(mode);
consumedCount += 1;
} else {
// The second argument could be the parent only if there are exactly two args
- if ((ctx->callData->argc != 2) || !(lastArg.isObject() || lastArg.isNull()))
- ctx->throwError(invalidArgs);
+ if ((ctx->callData->argc != 2) || !(lastArg->isObject() || lastArg->isNull()))
+ ctx->throwError(QStringLiteral("Qt.createComponent(): Invalid arguments"));
}
if (consumedCount < ctx->callData->argc) {
- if (lastArg.isObject()) {
- if (QV4::QObjectWrapper *qobjectWrapper = lastArg.as<QV4::QObjectWrapper>())
+ if (lastArg->isObject()) {
+ Scoped<QObjectWrapper> qobjectWrapper(scope, lastArg);
+ if (qobjectWrapper)
parentArg = qobjectWrapper->object();
if (!parentArg)
- ctx->throwError(invalidParent);
- } else if (lastArg.isNull()) {
+ ctx->throwError(QStringLiteral("Qt.createComponent(): Invalid parent object"));
+ } else if (lastArg->isNull()) {
parentArg = 0;
} else {
- ctx->throwError(invalidParent);
+ ctx->throwError(QStringLiteral("Qt.createComponent(): Invalid parent object"));
}
}
}
@@ -1365,11 +1366,10 @@ static QV4::ReturnedValue writeToConsole(ConsoleLogTypes logType, SimpleCallCont
if (i != 0)
result.append(QLatin1Char(' '));
- QV4::Value value = ctx->callData->args[i];
- if (value.asArrayObject())
- result.append(QStringLiteral("[") + value.toQStringNoThrow() + QStringLiteral("]"));
+ if (ctx->callData->args[i].asArrayObject())
+ result.append(QStringLiteral("[") + ctx->callData->args[i].toQStringNoThrow() + QStringLiteral("]"));
else
- result.append(value.toQStringNoThrow());
+ result.append(ctx->callData->args[i].toQStringNoThrow());
}
if (printStack) {
@@ -1836,19 +1836,21 @@ QV4::ReturnedValue GlobalExtensions::method_gc(SimpleCallContext *ctx)
ReturnedValue GlobalExtensions::method_string_arg(SimpleCallContext *ctx)
{
- QString value = ctx->callData->thisObject.toQStringNoThrow();
if (ctx->callData->argc != 1)
V4THROW_ERROR("String.arg(): Invalid arguments");
- QV4::Value arg = ctx->callData->args[0];
- if (arg.isInteger())
- return ctx->engine->newString(value.arg(arg.integerValue()))->asReturnedValue();
- else if (arg.isDouble())
- return ctx->engine->newString(value.arg(arg.doubleValue()))->asReturnedValue();
- else if (arg.isBoolean())
- return ctx->engine->newString(value.arg(arg.booleanValue()))->asReturnedValue();
+ QString value = ctx->callData->thisObject.toQString();
+
+ QV4::Scope scope(ctx);
+ QV4::ScopedValue arg(scope, ctx->callData->args[0]);
+ if (arg->isInteger())
+ return ctx->engine->newString(value.arg(arg->integerValue()))->asReturnedValue();
+ else if (arg->isDouble())
+ return ctx->engine->newString(value.arg(arg->doubleValue()))->asReturnedValue();
+ else if (arg->isBoolean())
+ return ctx->engine->newString(value.arg(arg->booleanValue()))->asReturnedValue();
- return ctx->engine->newString(value.arg(arg.toQStringNoThrow()))->asReturnedValue();
+ return ctx->engine->newString(value.arg(arg->toQString()))->asReturnedValue();
}
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
index 20d81c2ac0..9211ffd484 100644
--- a/src/qml/qml/v8/qv8engine.cpp
+++ b/src/qml/qml/v8/qv8engine.cpp
@@ -205,7 +205,7 @@ static QV4::ReturnedValue arrayFromVariantList(QV8Engine *engine, const QVariant
int len = list.count();
a->arrayReserve(len);
for (int ii = 0; ii < len; ++ii) {
- a->arrayData[ii].value = QV4::Value::fromReturnedValue(engine->fromVariant(list.at(ii)));
+ a->arrayData[ii].value = engine->fromVariant(list.at(ii));
a->arrayDataLen = ii + 1;
}
a->setArrayLengthUnchecked(len);
@@ -319,7 +319,7 @@ QV4::ReturnedValue QV8Engine::fromVariant(const QVariant &variant)
QV4::Scoped<QV4::ArrayObject> a(scope, m_v4Engine->newArrayObject());
a->arrayReserve(list.count());
for (int ii = 0; ii < list.count(); ++ii) {
- a->arrayData[ii].value = QV4::Value::fromReturnedValue(QV4::QObjectWrapper::wrap(m_v4Engine, list.at(ii)));
+ a->arrayData[ii].value = QV4::QObjectWrapper::wrap(m_v4Engine, list.at(ii));
a->arrayDataLen = ii + 1;
}
a->setArrayLengthUnchecked(list.count());
@@ -467,7 +467,7 @@ void QV8Engine::freezeObject(const QV4::ValueRef value)
QV4::ScopedFunctionObject f(scope, m_freezeObject.value());
QV4::ScopedCallData callData(scope, 1);
callData->args[0] = value;
- callData->thisObject = QV4::Value::fromObject(m_v4Engine->globalObject);
+ callData->thisObject = m_v4Engine->globalObject;
f->call(callData);
}
@@ -535,7 +535,7 @@ QV4::ReturnedValue QV8Engine::variantListToJS(const QVariantList &lst)
QV4::Scoped<QV4::ArrayObject> a(scope, m_v4Engine->newArrayObject());
a->arrayReserve(lst.size());
for (int i = 0; i < lst.size(); i++) {
- a->arrayData[i].value = QV4::Value::fromReturnedValue(variantToJS(lst.at(i)));
+ a->arrayData[i].value = variantToJS(lst.at(i));
a->arrayDataLen = i + 1;
}
a->setArrayLengthUnchecked(lst.size());
@@ -586,7 +586,7 @@ QV4::ReturnedValue QV8Engine::variantMapToJS(const QVariantMap &vmap)
for (it = vmap.constBegin(); it != vmap.constEnd(); ++it) {
s = m_v4Engine->newIdentifier(it.key());
QV4::Property *p = o->insertMember(s, QV4::Attr_Data);
- p->value = QV4::Value::fromReturnedValue(variantToJS(it.value()));
+ p->value = variantToJS(it.value());
}
return o.asReturnedValue();
}