diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-26 12:04:52 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-28 13:33:46 +0200 |
commit | d2e2a5b59c617e6cf7236cf36e9c20fe9ea36fdb (patch) | |
tree | 1fc21beff4add85e68a61b7c88b5d5f928bec6e8 /src/qml/qml | |
parent | 18d4794e3f614eec8594f6636d569af8bc112618 (diff) |
Remove Value::fromString()
replaced with call to the GC safe ExceutionEngine::newString()
method.
Change-Id: I7258296e75ca724ff42b94a0d147bc33a05f8f68
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmllocale.cpp | 32 | ||||
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 26 | ||||
-rw-r--r-- | src/qml/qml/v8/qv4domerrors_p.h | 2 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8engine.cpp | 4 |
5 files changed, 36 insertions, 33 deletions
diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index 97ab56256e..e79f1582d9 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -151,7 +151,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleString(QV4::SimpleCallConte if (ctx->callData->argc == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; - return QV4::Value::fromString(ctx, locale.toString(dt)).asReturnedValue(); + return ctx->engine->newString(locale.toString(dt))->asReturnedValue(); } if (!isLocaleObject(ctx->callData->args[0])) @@ -176,7 +176,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleString(QV4::SimpleCallConte formattedDt = r->locale.toString(dt, enumFormat); } - return QV4::Value::fromString(ctx, formattedDt).asReturnedValue(); + return ctx->engine->newString(formattedDt)->asReturnedValue(); } QV4::ReturnedValue QQmlDateExtension::method_toLocaleTimeString(QV4::SimpleCallContext *ctx) @@ -196,7 +196,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleTimeString(QV4::SimpleCallC if (ctx->callData->argc == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; - return QV4::Value::fromString(ctx, locale.toString(time)).asReturnedValue(); + return ctx->engine->newString(locale.toString(time))->asReturnedValue(); } if (!isLocaleObject(ctx->callData->args[0])) @@ -221,7 +221,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleTimeString(QV4::SimpleCallC formattedTime = r->locale.toString(time, enumFormat); } - return QV4::Value::fromString(ctx, formattedTime).asReturnedValue(); + return ctx->engine->newString(formattedTime)->asReturnedValue(); } QV4::ReturnedValue QQmlDateExtension::method_toLocaleDateString(QV4::SimpleCallContext *ctx) @@ -241,7 +241,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleDateString(QV4::SimpleCallC if (ctx->callData->argc == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; - return QV4::Value::fromString(ctx, locale.toString(date)).asReturnedValue(); + return ctx->engine->newString(locale.toString(date))->asReturnedValue(); } if (!isLocaleObject(ctx->callData->args[0])) @@ -266,7 +266,7 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleDateString(QV4::SimpleCallC formattedDate = r->locale.toString(date, enumFormat); } - return QV4::Value::fromString(ctx, formattedDate).asReturnedValue(); + return ctx->engine->newString(formattedDate)->asReturnedValue(); } QV4::ReturnedValue QQmlDateExtension::method_fromLocaleString(QV4::SimpleCallContext *ctx) @@ -420,7 +420,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(QV4::SimpleCallCon if (ctx->callData->argc == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; - return QV4::Value::fromString(ctx, locale.toString(number)).asReturnedValue(); + return ctx->engine->newString(locale.toString(number))->asReturnedValue(); } if (!isLocaleObject(ctx->callData->args[0])) @@ -445,7 +445,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(QV4::SimpleCallCon prec = ctx->callData->args[2].toInt32(); } - return QV4::Value::fromString(ctx, r->locale.toString(number, (char)format, prec)).asReturnedValue(); + return ctx->engine->newString(r->locale.toString(number, (char)format, prec))->asReturnedValue(); } QV4::ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(QV4::SimpleCallContext *ctx) @@ -458,7 +458,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(QV4::Simpl if (ctx->callData->argc == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; - return QV4::Value::fromString(ctx, locale.toString(number)).asReturnedValue(); + return ctx->engine->newString(locale.toString(number))->asReturnedValue(); } if (!isLocaleObject(ctx->callData->args[0])) @@ -475,7 +475,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(QV4::Simpl symbol = ctx->callData->args[1].toQStringNoThrow(); } - return QV4::Value::fromString(ctx, r->locale.toCurrencyString(number, symbol)).asReturnedValue(); + return ctx->engine->newString(r->locale.toCurrencyString(number, symbol))->asReturnedValue(); } QV4::ReturnedValue QQmlNumberExtension::method_fromLocaleString(QV4::SimpleCallContext *ctx) @@ -563,7 +563,7 @@ QV4::ReturnedValue QQmlLocaleData::method_get_uiLanguages(QV4::SimpleCallContext QV4::Scoped<QV4::ArrayObject> result(scope, ctx->engine->newArrayObject()); result->arrayReserve(langs.size()); for (int i = 0; i < langs.size(); ++i) { - result->arrayData[i].value = QV4::Value::fromString(ctx, langs.at(i)); + result->arrayData[i].value = ctx->engine->newString(langs.at(i)); result->arrayDataLen = i + 1; } @@ -584,7 +584,7 @@ QV4::ReturnedValue QQmlLocaleData::method_currencySymbol(QV4::SimpleCallContext format = QLocale::CurrencySymbolFormat(intFormat); } - return QV4::Value::fromString(ctx, locale.currencySymbol(format)).asReturnedValue(); + return ctx->engine->newString(locale.currencySymbol(format))->asReturnedValue(); } #define LOCALE_FORMAT(FUNC) \ @@ -597,7 +597,7 @@ QV4::ReturnedValue QQmlLocaleData::method_ ##FUNC (QV4::SimpleCallContext *ctx) quint32 intFormat = ctx->callData->args[0].toUInt32(); \ format = QLocale::FormatType(intFormat); \ } \ - return QV4::Value::fromString(ctx, locale. FUNC (format)).asReturnedValue(); \ + return ctx->engine->newString(locale. FUNC (format))->asReturnedValue(); \ } LOCALE_FORMAT(dateTimeFormat) @@ -626,7 +626,7 @@ QV4::ReturnedValue QQmlLocaleData::method_ ## VARIABLE (QV4::SimpleCallContext * } else { \ name = locale. VARIABLE(idx, enumFormat); \ } \ - return QV4::Value::fromString(ctx, name).asReturnedValue(); \ + return ctx->engine->newString(name)->asReturnedValue(); \ } // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date @@ -652,7 +652,7 @@ QV4::ReturnedValue QQmlLocaleData::method_ ## VARIABLE (QV4::SimpleCallContext * } else { \ name = locale. VARIABLE(idx, enumFormat); \ } \ - return QV4::Value::fromString(ctx, name).asReturnedValue(); \ + return ctx->engine->newString(name)->asReturnedValue(); \ } LOCALE_FORMATTED_MONTHNAME(monthName) @@ -663,7 +663,7 @@ LOCALE_FORMATTED_DAYNAME(standaloneDayName) #define LOCALE_STRING_PROPERTY(VARIABLE) QV4::ReturnedValue QQmlLocaleData::method_get_ ## VARIABLE (QV4::SimpleCallContext* ctx) \ { \ QLocale locale = getThisLocale(ctx); \ - return QV4::Value::fromString(ctx, locale. VARIABLE()).asReturnedValue();\ + return ctx->engine->newString(locale. VARIABLE())->asReturnedValue();\ } LOCALE_STRING_PROPERTY(name) diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 3b4e89861d..65edcad2cf 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -548,6 +548,8 @@ void QmlObjectCreator::setPropertyValue(QQmlPropertyData *property, const QV4::C int propertyWriteStatus = -1; void *argv[] = { 0, 0, &propertyWriteStatus, &propertyWriteFlags }; + QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine); + QV4::Scope scope(v4); // ### enums switch (property->propType) { @@ -583,7 +585,8 @@ void QmlObjectCreator::setPropertyValue(QQmlPropertyData *property, const QV4::C } else { QString stringValue = binding->valueAsString(&qmlUnit->header); if (property->isVarProperty()) { - _vmeMetaObject->setVMEProperty(property->coreIndex, QV4::Value::fromString(QV8Engine::getV4(engine), stringValue)); + QV4::ScopedString s(scope, v4->newString(stringValue)); + _vmeMetaObject->setVMEProperty(property->coreIndex, s.asValue()); } else { QVariant value = QQmlStringConverters::variantFromString(stringValue); argv[0] = &value; diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 121b0fbb78..638ff942ab 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -834,12 +834,12 @@ ReturnedValue QtObject::method_resolvedUrl(QV4::SimpleCallContext *ctx) if (p) { QQmlContextData *ctxt = v8engine->callingContext(); if (ctxt) - return Value::fromString(ctx, ctxt->resolvedUrl(url).toString()).asReturnedValue(); + return ctx->engine->newString(ctxt->resolvedUrl(url).toString())->asReturnedValue(); else - return Value::fromString(ctx, url.toString()).asReturnedValue(); + return ctx->engine->newString(url.toString())->asReturnedValue(); } - return Value::fromString(ctx, e->baseUrl().resolved(url).toString()).asReturnedValue(); + return ctx->engine->newString(e->baseUrl().resolved(url).toString())->asReturnedValue(); } /*! @@ -866,7 +866,7 @@ ReturnedValue QtObject::method_md5(SimpleCallContext *ctx) QByteArray data = ctx->callData->args[0].toQStringNoThrow().toUtf8(); QByteArray result = QCryptographicHash::hash(data, QCryptographicHash::Md5); - return Value::fromString(ctx, QLatin1String(result.toHex())).asReturnedValue(); + return ctx->engine->newString(QLatin1String(result.toHex()))->asReturnedValue(); } /*! @@ -880,7 +880,7 @@ ReturnedValue QtObject::method_btoa(SimpleCallContext *ctx) QByteArray data = ctx->callData->args[0].toQStringNoThrow().toUtf8(); - return Value::fromString(ctx, QLatin1String(data.toBase64())).asReturnedValue(); + return ctx->engine->newString(QLatin1String(data.toBase64()))->asReturnedValue(); } /*! @@ -894,7 +894,7 @@ ReturnedValue QtObject::method_atob(SimpleCallContext *ctx) QByteArray data = ctx->callData->args[0].toQStringNoThrow().toLatin1(); - return Value::fromString(ctx, QString::fromUtf8(QByteArray::fromBase64(data))).asReturnedValue(); + return ctx->engine->newString(QString::fromUtf8(QByteArray::fromBase64(data)))->asReturnedValue(); } /*! @@ -1644,7 +1644,7 @@ ReturnedValue GlobalExtensions::method_qsTranslate(SimpleCallContext *ctx) comment.toUtf8().constData(), n); - return Value::fromString(ctx, result).asReturnedValue(); + return ctx->engine->newString(result)->asReturnedValue(); } /*! @@ -1722,7 +1722,7 @@ ReturnedValue GlobalExtensions::method_qsTr(SimpleCallContext *ctx) QString result = QCoreApplication::translate(context.toUtf8().constData(), text.toUtf8().constData(), comment.toUtf8().constData(), n); - return Value::fromString(ctx, result).asReturnedValue(); + return ctx->engine->newString(result)->asReturnedValue(); } /*! @@ -1797,7 +1797,7 @@ ReturnedValue GlobalExtensions::method_qsTrId(SimpleCallContext *ctx) if (ctx->callData->argc > 1) n = ctx->callData->args[1].toInt32(); - return Value::fromString(ctx, qtTrId(ctx->callData->args[0].toQStringNoThrow().toUtf8().constData(), n)).asReturnedValue(); + return ctx->engine->newString(qtTrId(ctx->callData->args[0].toQStringNoThrow().toUtf8().constData(), n))->asReturnedValue(); } /*! @@ -1842,13 +1842,13 @@ ReturnedValue GlobalExtensions::method_string_arg(SimpleCallContext *ctx) QV4::Value arg = ctx->callData->args[0]; if (arg.isInteger()) - return Value::fromString(ctx, value.arg(arg.integerValue())).asReturnedValue(); + return ctx->engine->newString(value.arg(arg.integerValue()))->asReturnedValue(); else if (arg.isDouble()) - return Value::fromString(ctx, value.arg(arg.doubleValue())).asReturnedValue(); + return ctx->engine->newString(value.arg(arg.doubleValue()))->asReturnedValue(); else if (arg.isBoolean()) - return Value::fromString(ctx, value.arg(arg.booleanValue())).asReturnedValue(); + return ctx->engine->newString(value.arg(arg.booleanValue()))->asReturnedValue(); - return Value::fromString(ctx, value.arg(arg.toQStringNoThrow())).asReturnedValue(); + return ctx->engine->newString(value.arg(arg.toQStringNoThrow()))->asReturnedValue(); } diff --git a/src/qml/qml/v8/qv4domerrors_p.h b/src/qml/qml/v8/qv4domerrors_p.h index 686678c093..44662e8cba 100644 --- a/src/qml/qml/v8/qv4domerrors_p.h +++ b/src/qml/qml/v8/qv4domerrors_p.h @@ -77,7 +77,7 @@ QT_BEGIN_NAMESPACE #define DOMEXCEPTION_TYPE_MISMATCH_ERR 17 #define V4THROW_DOM(error, string) { \ - QV4::ScopedValue v(scope, QV4::Value::fromString(ctx, QStringLiteral(string))); \ + QV4::ScopedValue v(scope, ctx->engine->newString(QStringLiteral(string))); \ QV4::Scoped<Object> ex(scope, ctx->engine->newErrorObject(v)); \ ex->put(QV4::ScopedString(scope, ctx->engine->newIdentifier(QStringLiteral("code"))), QV4::ScopedValue(scope, QV4::Primitive::fromInt32(error))); \ ctx->throwError(ex); \ diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 97cfb50212..20d81c2ac0 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -249,7 +249,7 @@ QV4::ReturnedValue QV8Engine::fromVariant(const QVariant &variant) case QMetaType::Double: return QV4::Encode(*reinterpret_cast<const double*>(ptr)); case QMetaType::QString: - return QV4::Value::fromString(m_v4Engine->current, *reinterpret_cast<const QString*>(ptr)).asReturnedValue(); + return m_v4Engine->current->engine->newString(*reinterpret_cast<const QString*>(ptr))->asReturnedValue(); case QMetaType::Float: return QV4::Encode(*reinterpret_cast<const float*>(ptr)); case QMetaType::Short: @@ -661,7 +661,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 QV4::Value::fromString(m_v4Engine->current, *reinterpret_cast<const QString*>(data)).asReturnedValue(); + return m_v4Engine->current->engine->newString(*reinterpret_cast<const QString*>(data))->asReturnedValue(); case QMetaType::Float: return QV4::Encode(*reinterpret_cast<const float*>(data)); case QMetaType::Short: |