From 1a6dd638b830a5353fb2321b74a57d380539c92d Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sun, 28 Apr 2013 05:09:39 +0200 Subject: [PATCH] Get rid of QV8Engine::toString() It's easier to use toQString() on a QV4::Value Change-Id: I9bf22cb72607b32948e77c632d2f9b8fe120ea41 Reviewed-by: Simon Hausmann --- src/imports/localstorage/plugin.cpp | 14 ++++---- src/qml/qml/qqmllocale.cpp | 14 ++++---- src/qml/qml/qqmlproperty.cpp | 2 +- src/qml/qml/qqmlxmlhttprequest.cpp | 18 +++++----- src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 46 ++++++++++++------------ src/qml/qml/v8/qv8contextwrapper.cpp | 4 +-- src/qml/qml/v8/qv8engine.cpp | 10 ------ src/qml/qml/v8/qv8engine_p.h | 2 -- src/qml/qml/v8/qv8include.cpp | 2 +- src/qml/qml/v8/qv8qobjectwrapper.cpp | 14 ++++---- src/qml/qml/v8/qv8sequencewrapper_p_p.h | 8 ++--- src/qml/qml/v8/qv8typewrapper.cpp | 4 +-- src/qml/qml/v8/qv8valuetypewrapper.cpp | 4 +-- src/qml/types/qqmldelegatemodel.cpp | 6 ++-- src/qmltest/quicktestresult.cpp | 2 +- src/quick/items/context2d/qquickcontext2d.cpp | 51 +++++++++------------------ src/quick/items/qquickitem.cpp | 4 +-- src/quick/items/qquickloader.cpp | 3 +- src/quick/util/qquickglobal.cpp | 2 +- 19 files changed, 90 insertions(+), 120 deletions(-) diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp index 1584cdb..261f3b2 100644 --- a/src/imports/localstorage/plugin.cpp +++ b/src/imports/localstorage/plugin.cpp @@ -243,7 +243,7 @@ static v8::Handle qmlsqldatabase_executeSql(const v8::Arguments& args QSqlDatabase db = r->database; - QString sql = engine->toString(args[0]); + QString sql = args[0]->v4Value().toQString(); if (r->readonly && !sql.startsWith(QLatin1String("SELECT"),Qt::CaseInsensitive)) { V8THROW_SQL(SQLEXCEPTION_SYNTAX_ERR, QQmlEngine::tr("Read-only Transaction")); @@ -267,7 +267,7 @@ static v8::Handle qmlsqldatabase_executeSql(const v8::Arguments& args v8::Local names = object->GetPropertyNames(); uint32_t size = names->Length(); for (uint32_t ii = 0; ii < size; ++ii) - query.bindValue(engine->toString(names->Get(ii)), + query.bindValue(names->Get(ii)->v4Value().toQString(), engine->toVariant(object->Get(names->Get(ii)), -1)); } else { query.bindValue(0, engine->toVariant(values, -1)); @@ -311,8 +311,8 @@ static v8::Handle qmlsqldatabase_changeVersion(const v8::Arguments& a QV8Engine *engine = r->engine; QSqlDatabase db = r->database; - QString from_version = engine->toString(args[0]); - QString to_version = engine->toString(args[1]); + QString from_version = args[0]->v4Value().toQString(); + QString to_version = args[1]->v4Value().toQString(); v8::Handle callback = args[2]; if (from_version != r->version) @@ -611,9 +611,9 @@ void QQuickLocalStorage::openDatabaseSync(QQmlV8Function *args) QSqlDatabase database; - QString dbname = engine->toString((*args)[0]); - QString dbversion = engine->toString((*args)[1]); - QString dbdescription = engine->toString((*args)[2]); + QString dbname = (*args)[0]->v4Value().toQString(); + QString dbversion = (*args)[1]->v4Value().toQString(); + QString dbdescription = (*args)[2]->v4Value().toQString(); int dbestimatedsize = (*args)[3]->Int32Value(); v8::Handle dbcreationCallback = (*args)[4]; diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index 99e82bb..52acd85 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -301,10 +301,10 @@ v8::Handle QQmlDateExtension::fromLocaleString(const v8::Arguments& a QLocale::FormatType enumFormat = QLocale::LongFormat; QDateTime dt; - QString dateString = r->engine->toString(args[1]->ToString()); + QString dateString = args[1]->v4Value().toQString(); if (args.Length() == 3) { if (args[2]->IsString()) { - QString format = r->engine->toString(args[2]->ToString()); + QString format = args[2]->v4Value().toQString(); dt = r->locale.toDateTime(dateString, format); } else if (args[2]->IsNumber()) { quint32 intFormat = args[2]->ToNumber()->Value(); @@ -338,10 +338,10 @@ v8::Handle QQmlDateExtension::fromLocaleTimeString(const v8::Argument QLocale::FormatType enumFormat = QLocale::LongFormat; QTime tm; - QString dateString = r->engine->toString(args[1]->ToString()); + QString dateString = args[1]->v4Value().toQString(); if (args.Length() == 3) { if (args[2]->IsString()) { - QString format = r->engine->toString(args[2]->ToString()); + QString format = args[2]->v4Value().toQString(); tm = r->locale.toTime(dateString, format); } else if (args[2]->IsNumber()) { quint32 intFormat = args[2]->ToNumber()->Value(); @@ -376,10 +376,10 @@ v8::Handle QQmlDateExtension::fromLocaleDateString(const v8::Argument QLocale::FormatType enumFormat = QLocale::LongFormat; QDate dt; - QString dateString = r->engine->toString(args[1]->ToString()); + QString dateString = args[1]->v4Value().toQString(); if (args.Length() == 3) { if (args[2]->IsString()) { - QString format = r->engine->toString(args[2]->ToString()); + QString format = args[2]->v4Value().toQString(); dt = r->locale.toDate(dateString, format); } else if (args[2]->IsNumber()) { quint32 intFormat = args[2]->ToNumber()->Value(); @@ -502,7 +502,7 @@ v8::Handle QQmlNumberExtension::toLocaleCurrencyString(const v8::Argu if (args.Length() > 1) { if (!args[1]->IsString()) V8THROW_ERROR("Locale: Number.toLocaleString(): Invalid arguments"); - symbol = r->engine->toString(args[1]->ToString()); + symbol = args[1]->v4Value().toQString(); } return r->engine->toString(r->locale.toCurrencyString(number, symbol)); diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp index fa728fe..b29861c 100644 --- a/src/qml/qml/qqmlproperty.cpp +++ b/src/qml/qml/qqmlproperty.cpp @@ -1521,7 +1521,7 @@ bool QQmlPropertyPrivate::writeBinding(QObject *object, break; case QMetaType::QString: if (result->IsString()) - QUICK_STORE(QString, v8engine->toString(result)) + QUICK_STORE(QString, result->v4Value().toQString()) break; default: break; diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index ca2871d..ebdd9ea 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -839,7 +839,7 @@ v8::Handle NamedNodeMap::named(v8::Local property, const if (!r || !r->list) return v8::Undefined(); QV8Engine *engine = V8ENGINE(); - QString str = engine->toString(property); + QString str = property->v4Value().toQString(); for (int ii = 0; ii < r->list->count(); ++ii) { if (r->list->at(ii)->name == str) { return Node::create(engine, r->list->at(ii)); @@ -1534,7 +1534,7 @@ static v8::Handle qmlxmlhttprequest_open(const v8::Arguments &args) QV8Engine *engine = r->engine; // Argument 0 - Method - QString method = engine->toString(args[0]).toUpper(); + QString method = args[0]->v4Value().toQString().toUpper(); if (method != QLatin1String("GET") && method != QLatin1String("PUT") && method != QLatin1String("HEAD") && @@ -1543,7 +1543,7 @@ static v8::Handle qmlxmlhttprequest_open(const v8::Arguments &args) V8THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Unsupported HTTP method type"); // Argument 1 - URL - QUrl url = QUrl(engine->toString(args[1])); + QUrl url = QUrl(args[1]->v4Value().toQString()); if (url.isRelative()) url = engine->callingContext()->resolvedUrl(url); @@ -1555,9 +1555,9 @@ static v8::Handle qmlxmlhttprequest_open(const v8::Arguments &args) // Argument 3/4 - user/pass (optional) QString username, password; if (args.Length() > 3) - username = engine->toString(args[3]); + username = args[3]->v4Value().toQString(); if (args.Length() > 4) - password = engine->toString(args[4]); + password = args[4]->v4Value().toQString(); // Clear the fragment (if any) url.setFragment(QString()); @@ -1583,8 +1583,8 @@ static v8::Handle qmlxmlhttprequest_setRequestHeader(const v8::Argume QV8Engine *engine = r->engine; - QString name = engine->toString(args[0]); - QString value = engine->toString(args[1]); + QString name = args[0]->v4Value().toQString(); + QString value = args[1]->v4Value().toQString(); // ### Check that name and value are well formed @@ -1630,7 +1630,7 @@ static v8::Handle qmlxmlhttprequest_send(const v8::Arguments &args) QByteArray data; if (args.Length() > 0) - data = engine->toString(args[0]).toUtf8(); + data = args[0]->v4Value().toQString().toUtf8(); return r->send(constructMeObject(args.This(), engine), data); } @@ -1660,7 +1660,7 @@ static v8::Handle qmlxmlhttprequest_getResponseHeader(const v8::Argum r->readyState() != QQmlXMLHttpRequest::HeadersReceived) V8THROW_DOM(DOMEXCEPTION_INVALID_STATE_ERR, "Invalid state"); - return engine->toString(r->header(engine->toString(args[0]))); + return engine->toString(r->header(args[0]->v4Value().toQString())); } static v8::Handle qmlxmlhttprequest_getAllResponseHeaders(const v8::Arguments &args) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 6a884a8..11a8565 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -132,13 +132,13 @@ v8::Handle console(ConsoleLogTypes logType, const v8::Arguments &args } else { toString = tryCatch.Exception()->ToString(); str = QStringLiteral("toString() threw exception: %1") - .arg(engine->toString(toString)); + .arg(toString->v4Value().toQString()); } result.append(str); continue; } - QString tmp = engine->toString(toString); + QString tmp = toString->v4Value().toQString(); if (value->IsArray()) result.append(QStringLiteral("[%1]").arg(tmp)); else @@ -260,7 +260,7 @@ v8::Handle consoleTime(const v8::Arguments &args) { if (args.Length() != 1) V8THROW_ERROR("console.time(): Invalid arguments"); - QString name = V8ENGINE()->toString(args[0]); + QString name = args[0]->v4Value().toQString(); V8ENGINE()->startTimer(name); return v8::Undefined(); } @@ -269,7 +269,7 @@ v8::Handle consoleTimeEnd(const v8::Arguments &args) { if (args.Length() != 1) V8THROW_ERROR("console.time(): Invalid arguments"); - QString name = V8ENGINE()->toString(args[0]); + QString name = args[0]->v4Value().toQString(); bool wasRunning; qint64 elapsed = V8ENGINE()->stopTimer(name, &wasRunning); if (wasRunning) { @@ -283,7 +283,7 @@ v8::Handle consoleCount(const v8::Arguments &args) // first argument: name to print. Ignore any additional arguments QString name; if (args.Length() > 0) - name = V8ENGINE()->toString(args[0]); + name = args[0]->v4Value().toQString(); v8::Handle stackTrace = v8::StackTrace::CurrentStackTrace(1, v8::StackTrace::kOverview); @@ -291,8 +291,8 @@ v8::Handle consoleCount(const v8::Arguments &args) if (stackTrace->GetFrameCount()) { v8::Local frame = stackTrace->GetFrame(0); - QString scriptName = V8ENGINE()->toString(frame->GetScriptName()); - QString functionName = V8ENGINE()->toString(frame->GetFunctionName()); + QString scriptName = frame->GetScriptName()->v4Value().toQString(); + QString functionName = frame->GetFunctionName()->v4Value().toQString(); int line = frame->GetLineNumber(); int column = frame->GetColumn(); @@ -340,7 +340,7 @@ v8::Handle consoleAssert(const v8::Arguments &args) message.append(QLatin1Char(' ')); v8::Local value = args[i]; - message.append(V8ENGINE()->toString(value->ToString())); + message.append(value->v4Value().toQString()); } QString stack = jsStack(); @@ -369,7 +369,7 @@ v8::Handle consoleException(const v8::Arguments &args) v8::Handle stringArg(const v8::Arguments &args) { - QString value = V8ENGINE()->toString(args.This()->ToString()); + QString value = args.This()->v4Value().toQString(); if (args.Length() != 1) V8THROW_ERROR("String.arg(): Invalid arguments"); @@ -383,7 +383,7 @@ v8::Handle stringArg(const v8::Arguments &args) else if (arg->IsBoolean()) return V8ENGINE()->toString(value.arg(arg->BooleanValue())); - return V8ENGINE()->toString(value.arg(V8ENGINE()->toString(arg))); + return V8ENGINE()->toString(value.arg(arg->v4Value().toQString())); } /*! @@ -1073,7 +1073,7 @@ v8::Handle md5(const v8::Arguments &args) if (args.Length() != 1) V8THROW_ERROR("Qt.md5(): Invalid arguments"); - QByteArray data = V8ENGINE()->toString(args[0]->ToString()).toUtf8(); + QByteArray data = args[0]->v4Value().toQString().toUtf8(); QByteArray result = QCryptographicHash::hash(data, QCryptographicHash::Md5); return V8ENGINE()->toString(QLatin1String(result.toHex())); } @@ -1087,7 +1087,7 @@ v8::Handle btoa(const v8::Arguments &args) if (args.Length() != 1) V8THROW_ERROR("Qt.btoa(): Invalid arguments"); - QByteArray data = V8ENGINE()->toString(args[0]->ToString()).toUtf8(); + QByteArray data = args[0]->v4Value().toQString().toUtf8(); return V8ENGINE()->toString(QLatin1String(data.toBase64())); } @@ -1101,7 +1101,7 @@ v8::Handle atob(const v8::Arguments &args) if (args.Length() != 1) V8THROW_ERROR("Qt.atob(): Invalid arguments"); - QByteArray data = V8ENGINE()->toString(args[0]->ToString()).toUtf8(); + QByteArray data = args[0]->v4Value().toQString().toUtf8(); return V8ENGINE()->toString(QLatin1String(QByteArray::fromBase64(data))); } @@ -1182,13 +1182,13 @@ v8::Handle createQmlObject(const v8::Arguments &args) effectiveContext = context->asQQmlContext(); Q_ASSERT(context && effectiveContext); - QString qml = v8engine->toString(args[0]->ToString()); + QString qml = args[0]->v4Value().toQString(); if (qml.isEmpty()) return v8::Null(); QUrl url; if (args.Length() > 2) - url = QUrl(v8engine->toString(args[2]->ToString())); + url = QUrl(args[2]->v4Value().toQString()); else url = QUrl(QLatin1String("inline")); @@ -1283,7 +1283,7 @@ v8::Handle createComponent(const v8::Arguments &args) effectiveContext = 0; Q_ASSERT(context); - QString arg = v8engine->toString(args[0]->ToString()); + QString arg = args[0]->v4Value().toQString(); if (arg.isEmpty()) return v8::Null(); @@ -1359,10 +1359,10 @@ v8::Handle qsTranslate(const v8::Arguments &args) V8THROW_ERROR("qsTranslate(): third argument (disambiguation) must be a string"); QV8Engine *v8engine = V8ENGINE(); - QString context = v8engine->toString(args[0]); - QString text = v8engine->toString(args[1]); + QString context = args[0]->v4Value().toQString(); + QString text = args[1]->v4Value().toQString(); QString comment; - if (args.Length() > 2) comment = v8engine->toString(args[2]); + if (args.Length() > 2) comment = args[2]->v4Value().toQString(); int i = 3; if (args.Length() > i && args[i]->IsString()) { @@ -1446,10 +1446,10 @@ v8::Handle qsTr(const v8::Arguments &args) int lastSlash = path.lastIndexOf(QLatin1Char('/')); QString context = (lastSlash > -1) ? path.mid(lastSlash + 1, path.length()-lastSlash-5) : QString(); - QString text = v8engine->toString(args[0]); + QString text = args[0]->v4Value().toQString(); QString comment; if (args.Length() > 1) - comment = v8engine->toString(args[1]); + comment = args[1]->v4Value().toQString(); int n = -1; if (args.Length() > 2) n = args[2]->Int32Value(); @@ -1533,7 +1533,7 @@ v8::Handle qsTrId(const v8::Arguments &args) n = args[1]->Int32Value(); QV8Engine *v8engine = V8ENGINE(); - return v8engine->toString(qtTrId(v8engine->toString(args[0]).toUtf8().constData(), n)); + return v8engine->toString(qtTrId(args[0]->v4Value().toQString().toUtf8().constData(), n)); } /*! @@ -1590,7 +1590,7 @@ v8::Handle locale(const v8::Arguments &args) QV8Engine *v8engine = V8ENGINE(); if (args.Length() == 1) - code = v8engine->toString(args[0]); + code = args[0]->v4Value().toQString(); return QQmlLocale::locale(v8engine, code); } diff --git a/src/qml/qml/v8/qv8contextwrapper.cpp b/src/qml/qml/v8/qv8contextwrapper.cpp index 9c37d87..b056cc1 100644 --- a/src/qml/qml/v8/qv8contextwrapper.cpp +++ b/src/qml/qml/v8/qv8contextwrapper.cpp @@ -362,7 +362,7 @@ v8::Handle QV8ContextWrapper::NullSetter(v8::Local proper if (!resource->readOnly) { return v8::Handle(); } else { - QString error = QLatin1String("Invalid write to global property \"") + engine->toString(property) + + QString error = QLatin1String("Invalid write to global property \"") + property->v4Value().toQString() + QLatin1Char('"'); v8::ThrowException(v8::Exception::Error(engine->toString(error))); return v8::Handle(); @@ -420,7 +420,7 @@ v8::Handle QV8ContextWrapper::Setter(v8::Local property, if (!resource->readOnly) { return v8::Handle(); } else { - QString error = QLatin1String("Invalid write to global property \"") + engine->toString(property) + + QString error = QLatin1String("Invalid write to global property \"") + property->v4Value().toQString() + QLatin1Char('"'); v8::ThrowException(v8::Exception::Error(engine->toString(error))); return v8::Undefined(); diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 4794c22..1526e40 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -1560,16 +1560,6 @@ QV8Engine::ThreadData::~ThreadData() } } -QString QV8Engine::toString(v8::Handle string) -{ - return string.get()->v4Value().toString(m_v4Engine->current)->toQString(); -} - -QString QV8Engine::toString(v8::Handle string) -{ - return string.get()->v4Value().toString(m_v4Engine->current)->toQString(); -} - v8::Local QV8Engine::toString(const QString &string) { return QJSConverter::toString(string); diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h index 8cb6d02..fe22b99 100644 --- a/src/qml/qml/v8/qv8engine_p.h +++ b/src/qml/qml/v8/qv8engine_p.h @@ -312,8 +312,6 @@ public: QV4::Value getOwnPropertyNames(const QV4::Value &o); void freezeObject(const QV4::Value &value); - QString toString(v8::Handle string); - QString toString(v8::Handle string); static inline bool startsWithUpper(v8::Handle); QVariant toVariant(v8::Handle, int typeHint); diff --git a/src/qml/qml/v8/qv8include.cpp b/src/qml/qml/v8/qv8include.cpp index 101c3d2..b5ba87b 100644 --- a/src/qml/qml/v8/qv8include.cpp +++ b/src/qml/qml/v8/qv8include.cpp @@ -180,7 +180,7 @@ v8::Handle QV8Include::include(const v8::Arguments &args) if (!context || !context->isJSContext) V8THROW_ERROR("Qt.include(): Can only be called from JavaScript files"); - QUrl url(context->resolvedUrl(QUrl(engine->toString(args[0]->ToString())))); + QUrl url(context->resolvedUrl(QUrl(args[0]->v4Value().toQString()))); v8::Local callbackFunction; if (args.Length() >= 2 && args[1]->IsFunction()) diff --git a/src/qml/qml/v8/qv8qobjectwrapper.cpp b/src/qml/qml/v8/qv8qobjectwrapper.cpp index 13574e1..db9ac69 100644 --- a/src/qml/qml/v8/qv8qobjectwrapper.cpp +++ b/src/qml/qml/v8/qv8qobjectwrapper.cpp @@ -618,7 +618,7 @@ static inline void StoreProperty(QV8Engine *engine, QObject *object, QQmlPropert v8::Local frame = trace->GetFrame(0); int lineNumber = frame->GetLineNumber(); int columnNumber = frame->GetColumn(); - QString url = engine->toString(frame->GetScriptName()); + QString url = frame->GetScriptName()->v4Value().toQString(); newBinding = new QQmlBinding(&function, object, context, url, qmlSourceCoordinate(lineNumber), qmlSourceCoordinate(columnNumber)); newBinding->setTarget(object, *property, context); @@ -676,7 +676,7 @@ static inline void StoreProperty(QV8Engine *engine, QObject *object, QQmlPropert } else if (property->propType == QMetaType::Double && value->IsNumber()) { PROPERTY_STORE(double, double(value->ToNumber()->Value())); } else if (property->propType == QMetaType::QString && value->IsString()) { - PROPERTY_STORE(QString, engine->toString(value->ToString())); + PROPERTY_STORE(QString, value->v4Value().toQString()); } else if (property->isVarProperty()) { QQmlVMEMetaObject *vmemo = QQmlVMEMetaObject::get(object); Q_ASSERT(vmemo); @@ -732,7 +732,7 @@ bool QV8QObjectWrapper::SetProperty(QV8Engine *engine, QObject *object, const QH if (!result->isWritable() && !result->isQList()) { QString error = QLatin1String("Cannot assign to read-only property \"") + - engine->toString(property.string()) + QLatin1Char('\"'); + property.string()->v4Value().toQString() + QLatin1Char('\"'); v8::ThrowException(v8::Exception::Error(engine->toString(error))); return true; } @@ -804,7 +804,7 @@ v8::Handle QV8QObjectWrapper::Setter(v8::Local property, if (!result) { QString error = QLatin1String("Cannot assign to non-existent property \"") + - v8engine->toString(property) + QLatin1Char('\"'); + property->v4Value().toQString() + QLatin1Char('\"'); v8::ThrowException(v8::Exception::Error(v8engine->toString(error))); return value; } @@ -920,7 +920,7 @@ static void FastValueSetterReadOnly(v8::Local property, v8::Localengine; QString error = QLatin1String("Cannot assign to read-only property \"") + - v8engine->toString(property) + QLatin1Char('\"'); + property->v4Value().toQString() + QLatin1Char('\"'); v8::ThrowException(v8::Exception::Error(v8engine->toString(error))); } @@ -1337,7 +1337,7 @@ int QV8QObjectConnectionList::qt_metacall(QMetaObject::Call method, int index, v if (try_catch.HasCaught()) { QQmlError error; - error.setDescription(QString(QLatin1String("Unknown exception occurred during evaluation of connected function: %1")).arg(engine->toString(connection.function->GetName()))); + error.setDescription(QString(QLatin1String("Unknown exception occurred during evaluation of connected function: %1")).arg(connection.function->GetName()->v4Value().toQString())); v8::Local message = try_catch.Message(); if (!message.IsEmpty()) QQmlExpressionPrivate::exceptionToError(message, error); @@ -2164,7 +2164,7 @@ void CallArgument::fromValue(int callType, QV8Engine *engine, v8::HandleIsNull() || value->IsUndefined()) qstringPtr = new (&allocData) QString(); else - qstringPtr = new (&allocData) QString(engine->toString(value->ToString())); + qstringPtr = new (&allocData) QString(value->v4Value().toQString()); type = callType; } else if (callType == QMetaType::QObjectStar) { qobjectPtr = engine->toQObject(value); diff --git a/src/qml/qml/v8/qv8sequencewrapper_p_p.h b/src/qml/qml/v8/qv8sequencewrapper_p_p.h index 41bfb4b..0c486b8 100644 --- a/src/qml/qml/v8/qv8sequencewrapper_p_p.h +++ b/src/qml/qml/v8/qv8sequencewrapper_p_p.h @@ -117,7 +117,7 @@ static void generateWarning(QV8Engine *engine, const QString& description) QQmlError retn; retn.setDescription(description); retn.setLine(currFrame->GetLineNumber()); - retn.setUrl(QUrl(engine->toString(currFrame->GetScriptName()))); + retn.setUrl(QUrl(currFrame->GetScriptName()->v4Value().toQString())); QQmlEnginePrivate::warning(engine->engine(), retn); } @@ -171,7 +171,7 @@ static QString convertBoolToString(QV8Engine *, bool v) static QString convertV8ValueToString(QV8Engine *e, v8::Handle v) { - return e->toString(v->ToString()); + return v->v4Value().toQString(); } static v8::Handle convertStringToV8Value(QV8Engine *e, const QString &v) @@ -186,7 +186,7 @@ static QString convertStringToString(QV8Engine *, const QString &v) static QString convertV8ValueToQString(QV8Engine *e, v8::Handle v) { - return e->toString(v->ToString()); + return v->v4Value().toQString(); } static v8::Handle convertQStringToV8Value(QV8Engine *e, const QString &v) @@ -201,7 +201,7 @@ static QString convertQStringToString(QV8Engine *, const QString &v) static QUrl convertV8ValueToUrl(QV8Engine *e, v8::Handle v) { - return QUrl(e->toString(v->ToString())); + return QUrl(v->v4Value().toQString()); } static v8::Handle convertUrlToV8Value(QV8Engine *e, const QUrl &v) diff --git a/src/qml/qml/v8/qv8typewrapper.cpp b/src/qml/qml/v8/qv8typewrapper.cpp index 7c77772..6ebee59 100644 --- a/src/qml/qml/v8/qv8typewrapper.cpp +++ b/src/qml/qml/v8/qv8typewrapper.cpp @@ -176,7 +176,7 @@ v8::Handle QV8TypeWrapper::Getter(v8::Local property, // check for enum value if (QV8Engine::startsWithUpper(property)) { if (resource->mode == IncludeEnums) { - QString name = v8engine->toString(property); + QString name = property->v4Value().toQString(); // ### Optimize QByteArray enumName = name.toUtf8(); @@ -294,7 +294,7 @@ v8::Handle QV8TypeWrapper::Setter(v8::Local property, QV4::Object *apiprivate = QJSValuePrivate::get(siinfo->scriptApi(e))->value.asObject(); if (!apiprivate) { QString error = QLatin1String("Cannot assign to read-only property \"") + - v8engine->toString(property) + QLatin1Char('\"'); + property->v4Value().toQString() + QLatin1Char('\"'); v8::ThrowException(v8::Exception::Error(v8engine->toString(error))); } else { apiprivate->put(v8::Isolate::GetEngine()->current, property.get()->v4Value().stringValue(), setVal); diff --git a/src/qml/qml/v8/qv8valuetypewrapper.cpp b/src/qml/qml/v8/qv8valuetypewrapper.cpp index 42e40fd..0e99843 100644 --- a/src/qml/qml/v8/qv8valuetypewrapper.cpp +++ b/src/qml/qml/v8/qv8valuetypewrapper.cpp @@ -356,7 +356,7 @@ v8::Handle QV8ValueTypeWrapper::Setter(v8::Local property QV8ValueTypeResource *r = v8_resource_cast(info.This()); if (!r) return value; - QByteArray propName = r->engine->toString(property).toUtf8(); + QByteArray propName = property->v4Value().toQString().toUtf8(); if (r->objectType == QV8ValueTypeResource::Reference) { QV8ValueTypeReferenceResource *reference = static_cast(r); QMetaProperty writebackProperty = reference->object->metaObject()->property(reference->property); @@ -399,7 +399,7 @@ v8::Handle QV8ValueTypeWrapper::Setter(v8::Local property v8::Local frame = trace->GetFrame(0); int lineNumber = frame->GetLineNumber(); int columnNumber = frame->GetColumn(); - QString url = r->engine->toString(frame->GetScriptName()); + QString url = frame->GetScriptName()->v4Value().toQString(); newBinding = new QQmlBinding(&function, reference->object, context, url, qmlSourceCoordinate(lineNumber), qmlSourceCoordinate(columnNumber)); diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index 56aed72..eb9914c 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -1528,7 +1528,7 @@ bool QQmlDelegateModelPrivate::insert( for (uint i = 0; i < propertyNames->Length(); ++i) { v8::Local propertyName = propertyNames->Get(i)->ToString(); cacheItem->setValue( - m_cacheMetaType->v8Engine->toString(propertyName), + propertyName->v4Value().toQString(), m_cacheMetaType->v8Engine->toVariant(object->Get(propertyName), QVariant::Invalid)); } @@ -1635,14 +1635,14 @@ int QQmlDelegateModelItemMetaType::parseGroups(const v8::Local &group { int groupFlags = 0; if (groups->IsString()) { - const QString groupName = v8Engine->toString(groups); + const QString groupName = groups->v4Value().toQString(); int index = groupNames.indexOf(groupName); if (index != -1) groupFlags |= 2 << index; } else if (groups->IsArray()) { v8::Local array = v8::Local::Cast(groups); for (uint i = 0; i < array->Length(); ++i) { - const QString groupName = v8Engine->toString(array->Get(i)); + const QString groupName = array->Get(i)->v4Value().toQString(); int index = groupNames.indexOf(groupName); if (index != -1) groupFlags |= 2 << index; diff --git a/src/qmltest/quicktestresult.cpp b/src/qmltest/quicktestresult.cpp index 4e44f87..9fcb604 100644 --- a/src/qmltest/quicktestresult.cpp +++ b/src/qmltest/quicktestresult.cpp @@ -506,7 +506,7 @@ void QuickTestResult::stringify(QQmlV8Function *args) } } else { v8::Local jsstr = value->ToString(); - QString tmp = engine->toString(jsstr); + QString tmp = jsstr->v4Value().toQString(); if (value->IsArray()) result.append(QString::fromLatin1("[%1]").arg(tmp)); else diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index 9b0a09f..7892821 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -783,10 +783,7 @@ static void ctx2d_globalCompositeOperation_set(v8::Local, v8::Local< QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - - - QString mode = engine->toString(value); + QString mode = value->v4Value().toQString(); QPainter::CompositionMode cm = qt_composite_mode_from_string(mode); if (cm == QPainter::CompositionMode_SourceOver && mode != QStringLiteral("source-over")) return; @@ -899,12 +896,10 @@ static void ctx2d_fillRule_set(v8::Local, v8::Local value QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - - if ((value->IsString() && engine->toString(value) == QStringLiteral("WindingFill")) + if ((value->IsString() && value->v4Value().toQString() == QStringLiteral("WindingFill")) ||(value->IsNumber() && value->NumberValue() == Qt::WindingFill)) { r->context->state.fillRule = Qt::WindingFill; - } else if ((value->IsString() && engine->toString(value) == QStringLiteral("OddEvenFill")) + } else if ((value->IsString() && value->v4Value().toQString() == QStringLiteral("OddEvenFill")) ||(value->IsNumber() && value->NumberValue() == Qt::OddEvenFill)) { r->context->state.fillRule = Qt::OddEvenFill; } else { @@ -1203,13 +1198,13 @@ static v8::Handle ctx2d_createPattern(const v8::Arguments &args) patternTexture = pixelData->image; } } else { - patternTexture = r->context->createPixmap(QUrl(engine->toString(args[0]->ToString())))->image(); + patternTexture = r->context->createPixmap(QUrl(args[0]->v4Value().toQString()))->image(); } if (!patternTexture.isNull()) { styleResouce->brush.setTextureImage(patternTexture); - QString repetition = engine->toString(args[1]); + QString repetition = args[1]->v4Value().toQString(); if (repetition == QStringLiteral("repeat") || repetition.isEmpty()) { styleResouce->patternRepeatX = true; styleResouce->patternRepeatY = true; @@ -1272,9 +1267,7 @@ static void ctx2d_lineCap_set(v8::Local, v8::Local value, QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - - QString lineCap = engine->toString(value); + QString lineCap = value->v4Value().toQString(); Qt::PenCapStyle cap; if (lineCap == QLatin1String("round")) cap = Qt::RoundCap; @@ -1330,9 +1323,7 @@ static void ctx2d_lineJoin_set(v8::Local, v8::Local value QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - - QString lineJoin = engine->toString(value); + QString lineJoin = value->v4Value().toQString(); Qt::PenJoinStyle join; if (lineJoin == QLatin1String("round")) join = Qt::RoundJoin; @@ -1529,7 +1520,7 @@ static void ctx2d_path_set(v8::Local, v8::Local value, co if (path) r->context->m_path = path->path(); } else { - QString path = engine->toString(value->ToString()); + QString path = value->v4Value().toQString(); QQuickSvgParser::parsePathDataFast(path, r->context->m_path); } r->context->m_v8path = value; @@ -1932,14 +1923,13 @@ static v8::Handle ctx2d_text(const v8::Arguments &args) QV8Context2DResource *r = v8_resource_cast(args.This()); CHECK_CONTEXT(r) - QV8Engine *engine = V8ENGINE(); if (args.Length() == 3) { qreal x = args[1]->NumberValue(); qreal y = args[2]->NumberValue(); if (!qIsFinite(x) || !qIsFinite(y)) return args.This(); - r->context->text(engine->toString(args[0]), x, y); + r->context->text(args[0]->v4Value().toQString(), x, y); } return args.This(); } @@ -2023,8 +2013,7 @@ static void ctx2d_font_set(v8::Local, v8::Local value, co QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - QString fs = engine->toString(value); + QString fs = value->v4Value().toQString(); QFont font = qt_font_from_string(fs); if (font != r->context->state.font) { r->context->state.font = font; @@ -2071,9 +2060,8 @@ static void ctx2d_textAlign_set(v8::Local, v8::Local valu { QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - QString textAlign = engine->toString(value); + QString textAlign = value->v4Value().toQString(); QQuickContext2D::TextAlignType ta; if (textAlign == QLatin1String("start")) @@ -2136,8 +2124,7 @@ static void ctx2d_textBaseline_set(v8::Local, v8::Local v { QV8Context2DResource *r = v8_resource_cast(info.This()); CHECK_CONTEXT_SETTER(r) - QV8Engine *engine = V8ENGINE_ACCESSOR(); - QString textBaseline = engine->toString(value); + QString textBaseline = value->v4Value().toQString(); QQuickContext2D::TextBaseLineType tb; if (textBaseline == QLatin1String("alphabetic")) @@ -2171,13 +2158,12 @@ static v8::Handle ctx2d_fillText(const v8::Arguments &args) QV8Context2DResource *r = v8_resource_cast(args.This()); CHECK_CONTEXT(r) - QV8Engine *engine = V8ENGINE(); if (args.Length() == 3) { qreal x = args[1]->NumberValue(); qreal y = args[2]->NumberValue(); if (!qIsFinite(x) || !qIsFinite(y)) return args.This(); - QPainterPath textPath = r->context->createTextGlyphs(x, y, engine->toString(args[0])); + QPainterPath textPath = r->context->createTextGlyphs(x, y, args[0]->v4Value().toQString()); r->context->buffer()->fill(textPath); } return args.This(); @@ -2195,9 +2181,8 @@ static v8::Handle ctx2d_strokeText(const v8::Arguments &args) QV8Context2DResource *r = v8_resource_cast(args.This()); CHECK_CONTEXT(r) - QV8Engine *engine = V8ENGINE(); if (args.Length() == 3) - r->context->drawText(engine->toString(args[0]), args[1]->NumberValue(), args[2]->NumberValue(), false); + r->context->drawText(args[0]->v4Value().toQString(), args[1]->NumberValue(), args[2]->NumberValue(), false); return args.This(); } @@ -2230,11 +2215,9 @@ static v8::Handle ctx2d_measureText(const v8::Arguments &args) QV8Context2DResource *r = v8_resource_cast(args.This()); CHECK_CONTEXT(r) - QV8Engine *engine = V8ENGINE(); - if (args.Length() == 1) { QFontMetrics fm(r->context->state.font); - uint width = fm.width(engine->toString(args[0])); + uint width = fm.width(args[0]->v4Value().toQString()); v8::Local tm = v8::Object::New(); tm->Set(v8::String::New("width"), v8::Number::New(width)); return tm; @@ -2319,7 +2302,7 @@ static v8::Handle ctx2d_drawImage(const v8::Arguments &args) QQmlRefPointer pixmap; if (args[0]->IsString()) { - QUrl url(engine->toString(args[0]->ToString())); + QUrl url(args[0]->v4Value().toQString()); if (!url.isValid()) V8THROW_DOM(DOMEXCEPTION_TYPE_MISMATCH_ERR, "drawImage(), type mismatch"); @@ -2569,7 +2552,7 @@ static v8::Handle ctx2d_createImageData(const v8::Arguments &args) return qt_create_image_data(w, h, engine, QImage()); } } else if (args[0]->IsString()) { - QImage image = r->context->createPixmap(QUrl(engine->toString(args[0]->ToString())))->image(); + QImage image = r->context->createPixmap(QUrl(args[0]->v4Value().toQString()))->image(); return qt_create_image_data(image.width(), image.height(), engine, image); } } else if (args.Length() == 2) { diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index d110a01..f5be518 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3762,7 +3762,7 @@ void QQuickItem::mapFromItem(QQmlV8Function *args) const itemObj = qobject_cast(engine->toQObject(item)); if (!itemObj && !item->IsNull()) { - qmlInfo(this) << "mapFromItem() given argument \"" << engine->toString(item->ToString()) + qmlInfo(this) << "mapFromItem() given argument \"" << item->v4Value().toQString() << "\" which is neither null nor an Item"; return; } @@ -3834,7 +3834,7 @@ void QQuickItem::mapToItem(QQmlV8Function *args) const itemObj = qobject_cast(engine->toQObject(item)); if (!itemObj && !item->IsNull()) { - qmlInfo(this) << "mapToItem() given argument \"" << engine->toString(item->ToString()) + qmlInfo(this) << "mapToItem() given argument \"" << item->v4Value().toQString() << "\" which is neither null nor an Item"; return; } diff --git a/src/quick/items/qquickloader.cpp b/src/quick/items/qquickloader.cpp index 0d14f3e..3b662c1 100644 --- a/src/quick/items/qquickloader.cpp +++ b/src/quick/items/qquickloader.cpp @@ -928,8 +928,7 @@ void QQuickLoader::geometryChanged(const QRectF &newGeometry, const QRectF &oldG QUrl QQuickLoaderPrivate::resolveSourceUrl(QQmlV8Function *args) { - QV8Engine *v8engine = args->engine(); - QString arg = v8engine->toString((*args)[0]->ToString()); + QString arg = (*args)[0]->v4Value().toQString(); if (arg.isEmpty()) return QUrl(); diff --git a/src/quick/util/qquickglobal.cpp b/src/quick/util/qquickglobal.cpp index 202c0b3..31b23fb 100644 --- a/src/quick/util/qquickglobal.cpp +++ b/src/quick/util/qquickglobal.cpp @@ -337,7 +337,7 @@ public: if (ok) *ok = true; } if (!vfam.IsEmpty() && !vfam->IsNull() && !vfam->IsUndefined() && vfam->IsString()) { - retn.setFamily(e->toString(vfam->ToString())); + retn.setFamily(vfam->v4Value().toQString()); if (ok) *ok = true; } if (!vital.IsEmpty() && !vital->IsNull() && !vital->IsUndefined() && vital->IsBoolean()) { -- 2.7.4