diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-27 09:45:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-30 08:05:46 +0200 |
commit | 0e36db9f1179d1bdf0710494e98ff7aee1a2d836 (patch) | |
tree | e9f00fe028ee24b4412e3bb8418a3381e81c772b /src/qml/qml/v8 | |
parent | 472c8e6bed0b18c4e853c905ace07a09c64c29d2 (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.cpp | 52 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8engine.cpp | 10 |
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(); } |