From 042aa2eb0e55616fc754d0d71246efb531ca6dfe Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Thu, 14 Sep 2017 14:54:42 +0200 Subject: Change CallData::argc to be a QV4::Value Instead of mimicking a Value. This makes sure that argc now stays correct even when anything on Value changes. Most of the change is mechanical: replace callData->argc by callData->argc(). Change-Id: I521831ae1ffb3966bad6589c18d7a373e13439d7 Reviewed-by: Lars Knoll --- src/imports/localstorage/plugin.cpp | 14 +-- src/particles/qquickv4particledata.cpp | 8 +- src/qml/jsruntime/qv4argumentsobject.cpp | 2 +- src/qml/jsruntime/qv4arraybuffer.cpp | 6 +- src/qml/jsruntime/qv4arrayobject.cpp | 49 ++++----- src/qml/jsruntime/qv4booleanobject.cpp | 4 +- src/qml/jsruntime/qv4context.cpp | 4 +- src/qml/jsruntime/qv4context_p.h | 21 ++-- src/qml/jsruntime/qv4dataview.cpp | 30 +++--- src/qml/jsruntime/qv4dateobject.cpp | 86 ++++++++-------- src/qml/jsruntime/qv4functionobject.cpp | 30 +++--- src/qml/jsruntime/qv4globalobject.cpp | 18 ++-- src/qml/jsruntime/qv4include.cpp | 4 +- src/qml/jsruntime/qv4jscall_p.h | 9 +- src/qml/jsruntime/qv4jsonobject.cpp | 2 +- src/qml/jsruntime/qv4mathobject.cpp | 40 ++++---- src/qml/jsruntime/qv4numberobject.cpp | 20 ++-- src/qml/jsruntime/qv4objectproto.cpp | 24 ++--- src/qml/jsruntime/qv4qobjectwrapper.cpp | 20 ++-- src/qml/jsruntime/qv4regexpobject.cpp | 9 +- src/qml/jsruntime/qv4sequenceobject.cpp | 4 +- src/qml/jsruntime/qv4stringobject.cpp | 52 +++++----- src/qml/jsruntime/qv4typedarray.cpp | 14 +-- src/qml/jsruntime/qv4vme_moth.cpp | 2 +- src/qml/qml/qqmlcomponent.cpp | 2 +- src/qml/qml/qqmldelayedcallqueue.cpp | 9 +- src/qml/qml/qqmllistwrapper.cpp | 2 +- src/qml/qml/qqmllocale.cpp | 74 +++++++------- src/qml/qml/qqmlxmlhttprequest.cpp | 18 ++-- src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 140 +++++++++++++------------- src/qml/qml/v8/qv8engine_p.h | 4 +- src/qml/types/qqmldelegatemodel.cpp | 2 +- src/qml/types/qquickworkerscript.cpp | 2 +- src/qml/util/qqmladaptormodel.cpp | 4 +- src/quick/items/context2d/qquickcontext2d.cpp | 94 ++++++++--------- 35 files changed, 411 insertions(+), 412 deletions(-) (limited to 'src') diff --git a/src/imports/localstorage/plugin.cpp b/src/imports/localstorage/plugin.cpp index a827188d10..4af3be715f 100644 --- a/src/imports/localstorage/plugin.cpp +++ b/src/imports/localstorage/plugin.cpp @@ -209,7 +209,7 @@ static ReturnedValue qmlsqldatabase_rows_setForwardOnly(const QV4::BuiltinFuncti QV4::Scoped r(scope, callData->thisObject.as()); if (!r || r->d()->type != Heap::QQmlSqlDatabaseWrapper::Rows) V4THROW_REFERENCE("Not a SQLDatabase::Rows object"); - if (callData->argc < 1) + if (callData->argc() < 1) RETURN_RESULT(scope.engine->throwTypeError()); r->d()->sqlQuery->setForwardOnly(callData->args[0].toBoolean()); @@ -261,7 +261,7 @@ static ReturnedValue qmlsqldatabase_rows_item(const QV4::BuiltinFunction *b, QV4 if (!r || r->d()->type != Heap::QQmlSqlDatabaseWrapper::Rows) V4THROW_REFERENCE("Not a SQLDatabase::Rows object"); - RETURN_RESULT(qmlsqldatabase_rows_index(r, scope.engine, callData->argc ? callData->args[0].toUInt32() : 0)); + RETURN_RESULT(qmlsqldatabase_rows_index(r, scope.engine, callData->argc() ? callData->args[0].toUInt32() : 0)); } static QVariant toSqlVariant(QV4::ExecutionEngine *engine, const QV4::ScopedValue &value) @@ -285,7 +285,7 @@ static ReturnedValue qmlsqldatabase_executeSql(const QV4::BuiltinFunction *b, QV QSqlDatabase db = *r->d()->database; - QString sql = callData->argc ? callData->args[0].toQString() : QString(); + QString sql = callData->argc() ? callData->args[0].toQString() : QString(); if (r->d()->readonly && !sql.startsWith(QLatin1String("SELECT"),Qt::CaseInsensitive)) { V4THROW_SQL(SQLEXCEPTION_SYNTAX_ERR, QQmlEngine::tr("Read-only Transaction")); @@ -297,7 +297,7 @@ static ReturnedValue qmlsqldatabase_executeSql(const QV4::BuiltinFunction *b, QV ScopedValue result(scope, Primitive::undefinedValue()); if (query.prepare(sql)) { - if (callData->argc > 1) { + if (callData->argc() > 1) { ScopedValue values(scope, callData->args[1]); if (values->as()) { ScopedArrayObject array(scope, values); @@ -387,7 +387,7 @@ struct TransactionRollback { static ReturnedValue qmlsqldatabase_changeVersion(const QV4::BuiltinFunction *b, QV4::CallData *callData) { Scope scope(b); - if (callData->argc < 2) + if (callData->argc() < 2) RETURN_UNDEFINED(); Scoped r(scope, callData->thisObject); @@ -397,7 +397,7 @@ static ReturnedValue qmlsqldatabase_changeVersion(const QV4::BuiltinFunction *b, QSqlDatabase db = *r->d()->database; QString from_version = callData->args[0].toQString(); QString to_version = callData->args[1].toQString(); - ScopedFunctionObject callback(scope, callData->argc > 2 ? callData->args[2] : Primitive::undefinedValue()); + ScopedFunctionObject callback(scope, callData->argc() > 2 ? callData->args[2] : Primitive::undefinedValue()); if (from_version != *r->d()->version) V4THROW_SQL(SQLEXCEPTION_VERSION_ERR, QQmlEngine::tr("Version mismatch: expected %1, found %2").arg(from_version).arg(*r->d()->version)); @@ -448,7 +448,7 @@ static ReturnedValue qmlsqldatabase_transaction_shared(const QV4::BuiltinFunctio if (!r || r->d()->type != Heap::QQmlSqlDatabaseWrapper::Database) V4THROW_REFERENCE("Not a SQLDatabase object"); - const FunctionObject *callback = callData->argc ? callData->args[0].as() : 0; + const FunctionObject *callback = callData->argc() ? callData->args[0].as() : 0; if (!callback) V4THROW_SQL(SQLEXCEPTION_UNKNOWN_ERR, QQmlEngine::tr("transaction: missing callback")); diff --git a/src/particles/qquickv4particledata.cpp b/src/particles/qquickv4particledata.cpp index 4e218c91ea..ee1c334536 100644 --- a/src/particles/qquickv4particledata.cpp +++ b/src/particles/qquickv4particledata.cpp @@ -346,7 +346,7 @@ static QV4::ReturnedValue particleData_set_ ## NAME (const QV4::BuiltinFunction if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - double d = callData->argc ? callData->args[0].toNumber() : 0; \ + double d = callData->argc() ? callData->args[0].toNumber() : 0; \ r->d()->datum->color. VAR = qMin(255, qMax(0, (int)::floor(d * 255.0)));\ RETURN_UNDEFINED(); \ } @@ -369,7 +369,7 @@ static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunct if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> VARIABLE = (callData->argc && callData->args[0].toBoolean()) ? 1.0 : 0.0;\ + r->d()->datum-> VARIABLE = (callData->argc() && callData->args[0].toBoolean()) ? 1.0 : 0.0;\ RETURN_UNDEFINED(); \ } @@ -390,7 +390,7 @@ static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunct if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> VARIABLE = callData->argc ? callData->args[0].toNumber() : qt_qnan();\ + r->d()->datum-> VARIABLE = callData->argc() ? callData->args[0].toNumber() : qt_qnan();\ RETURN_UNDEFINED(); \ } @@ -411,7 +411,7 @@ static QV4::ReturnedValue particleData_set_ ## VARIABLE (const QV4::BuiltinFunct if (!r || !r->d()->datum)\ RETURN_RESULT(scope.engine->throwError(QStringLiteral("Not a valid ParticleData object")));\ \ - r->d()->datum-> SETTER (callData->argc ? callData->args[0].toNumber() : qt_qnan(), r->d()->particleSystem);\ + r->d()->datum-> SETTER (callData->argc() ? callData->args[0].toNumber() : qt_qnan(), r->d()->particleSystem);\ RETURN_UNDEFINED(); \ } diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 1a60725d27..b86b616178 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -232,7 +232,7 @@ ReturnedValue ArgumentsSetterFunction::call(const Managed *setter, CallData *cal return v4->throwTypeError(); Q_ASSERT(s->index() < static_cast(o->context()->argc())); - o->context()->setArg(s->index(), (callData->argc ? callData->args[0] : Primitive::undefinedValue())); + o->context()->setArg(s->index(), (callData->argc() ? callData->args[0] : Primitive::undefinedValue())); return Encode::undefined(); } diff --git a/src/qml/jsruntime/qv4arraybuffer.cpp b/src/qml/jsruntime/qv4arraybuffer.cpp index bd47d0bc77..e5388e714c 100644 --- a/src/qml/jsruntime/qv4arraybuffer.cpp +++ b/src/qml/jsruntime/qv4arraybuffer.cpp @@ -80,7 +80,7 @@ ReturnedValue ArrayBufferCtor::call(const Managed *that, CallData *callData) ReturnedValue ArrayBufferCtor::method_isView(const BuiltinFunction *, CallData *callData) { - if (callData->argc < 1) + if (callData->argc() < 1) return Encode(false); if (callData->args[0].as() || @@ -173,8 +173,8 @@ ReturnedValue ArrayBufferPrototype::method_slice(const BuiltinFunction *b, CallD if (!a) return v4->throwTypeError(); - double start = callData->argc > 0 ? callData->args[0].toInteger() : 0; - double end = (callData->argc < 2 || callData->args[1].isUndefined()) ? + double start = callData->argc() > 0 ? callData->args[0].toInteger() : 0; + double end = (callData->argc() < 2 || callData->args[1].isUndefined()) ? a->d()->data->size : callData->args[1].toInteger(); if (v4->hasException) return QV4::Encode::undefined(); diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index 7796da5c70..5abfe3f8ae 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -61,7 +61,7 @@ ReturnedValue ArrayCtor::construct(const Managed *m, CallData *callData) Scope scope(v4); ScopedArrayObject a(scope, v4->newArrayObject()); uint len; - if (callData->argc == 1 && callData->args[0].isNumber()) { + if (callData->argc() == 1 && callData->args[0].isNumber()) { bool ok; len = callData->args[0].asArrayLength(&ok); @@ -71,7 +71,7 @@ ReturnedValue ArrayCtor::construct(const Managed *m, CallData *callData) if (len < 0x1000) a->arrayReserve(len); } else { - len = callData->argc; + len = callData->argc(); a->arrayReserve(len); a->arrayPut(0, callData->args, len); } @@ -120,7 +120,7 @@ void ArrayPrototype::init(ExecutionEngine *engine, Object *ctor) ReturnedValue ArrayPrototype::method_isArray(const BuiltinFunction *, CallData *callData) { - bool isArray = callData->argc && callData->args[0].as(); + bool isArray = callData->argc() && callData->args[0].as(); return Encode(isArray); } @@ -163,7 +163,7 @@ ReturnedValue ArrayPrototype::method_concat(const BuiltinFunction *b, CallData * ScopedArrayObject elt(scope); ScopedObject eltAsObj(scope); ScopedValue entry(scope); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { eltAsObj = callData->args[i]; elt = callData->args[i]; if (elt) { @@ -359,16 +359,16 @@ ReturnedValue ArrayPrototype::method_push(const BuiltinFunction *b, CallData *ca uint len = instance->getLength(); - if (len + callData->argc < len) { + if (len + callData->argc() < len) { // ughh... this goes beyond UINT_MAX double l = len; ScopedString s(scope); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { s = Primitive::fromDouble(l + i).toString(scope.engine); if (!instance->put(s, callData->args[i])) return scope.engine->throwTypeError(); } - double newLen = l + callData->argc; + double newLen = l + callData->argc(); if (!instance->isArrayObject()) { if (!instance->put(scope.engine->id_length(), ScopedValue(scope, Primitive::fromDouble(newLen)))) return scope.engine->throwTypeError(); @@ -379,16 +379,17 @@ ReturnedValue ArrayPrototype::method_push(const BuiltinFunction *b, CallData *ca return Encode(newLen); } - if (!callData->argc) + if (!callData->argc()) ; else if (!instance->protoHasArray() && instance->arrayData()->length() <= len && instance->arrayData()->type == Heap::ArrayData::Simple) { - instance->arrayData()->vtable()->putArray(instance, len, callData->args, callData->argc); + instance->arrayData()->vtable()->putArray(instance, len, callData->args, callData->argc()); len = instance->arrayData()->length(); } else { - for (int i = 0; i < callData->argc; ++i) + for (int i = 0, ei = callData->argc(); i < ei; ++i) { if (!instance->putIndexed(len + i, callData->args[i])) return scope.engine->throwTypeError(); - len += callData->argc; + } + len += callData->argc(); } if (instance->isArrayObject()) instance->setArrayLengthUnchecked(len); @@ -508,7 +509,7 @@ ReturnedValue ArrayPrototype::method_slice(const BuiltinFunction *b, CallData *c else start = (uint) s; uint end = len; - if (callData->argc > 1 && !callData->args[1].isUndefined()) { + if (callData->argc() > 1 && !callData->args[1].isUndefined()) { double e = callData->args[1].toInteger(); if (e < 0) end = (uint)qMax(len + e, 0.); @@ -576,7 +577,7 @@ ReturnedValue ArrayPrototype::method_splice(const BuiltinFunction *b, CallData * } newArray->setArrayLengthUnchecked(deleteCount); - uint itemCount = callData->argc < 2 ? 0 : callData->argc - 2; + uint itemCount = callData->argc() < 2 ? 0 : callData->argc() - 2; if (itemCount < deleteCount) { for (uint k = start; k < len - deleteCount; ++k) { @@ -635,7 +636,7 @@ ReturnedValue ArrayPrototype::method_unshift(const BuiltinFunction *b, CallData if (!instance->protoHasArray() && !instance->arrayData()->attrs && instance->arrayData()->length() <= len && instance->arrayData()->type != Heap::ArrayData::Custom) { - instance->arrayData()->vtable()->push_front(instance, callData->args, callData->argc); + instance->arrayData()->vtable()->push_front(instance, callData->args, callData->argc()); } else { ScopedValue v(scope); for (uint k = len; k > 0; --k) { @@ -643,20 +644,20 @@ ReturnedValue ArrayPrototype::method_unshift(const BuiltinFunction *b, CallData v = instance->getIndexed(k - 1, &exists); bool ok; if (exists) - ok = instance->putIndexed(k + callData->argc - 1, v); + ok = instance->putIndexed(k + callData->argc() - 1, v); else - ok = instance->deleteIndexedProperty(k + callData->argc - 1); + ok = instance->deleteIndexedProperty(k + callData->argc() - 1); if (!ok) return scope.engine->throwTypeError(); } - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { bool ok = instance->putIndexed(i, callData->args[i]); if (!ok) return scope.engine->throwTypeError(); } } - uint newLen = len + callData->argc; + uint newLen = len + callData->argc(); if (instance->isArrayObject()) instance->setArrayLengthUnchecked(newLen); else { @@ -681,7 +682,7 @@ ReturnedValue ArrayPrototype::method_indexOf(const BuiltinFunction *b, CallData ScopedValue searchValue(scope, callData->argument(0)); uint fromIndex = 0; - if (callData->argc >= 2) { + if (callData->argc() >= 2) { double f = callData->args[1].toInteger(); CHECK_EXCEPTION(); if (f >= len) @@ -747,12 +748,12 @@ ReturnedValue ArrayPrototype::method_lastIndexOf(const BuiltinFunction *b, CallD ScopedValue searchValue(scope); uint fromIndex = len; - if (callData->argc >= 1) + if (callData->argc() >= 1) searchValue = callData->argument(0); else searchValue = Primitive::undefinedValue(); - if (callData->argc >= 2) { + if (callData->argc() >= 2) { double f = callData->args[1].toInteger(); CHECK_EXCEPTION(); if (f > 0) @@ -970,7 +971,7 @@ ReturnedValue ArrayPrototype::method_reduce(const BuiltinFunction *b, CallData * ScopedValue acc(scope); ScopedValue v(scope); - if (callData->argc > 1) { + if (callData->argc() > 1) { acc = callData->argument(1); } else { bool kPresent = false; @@ -1015,7 +1016,7 @@ ReturnedValue ArrayPrototype::method_reduceRight(const BuiltinFunction *b, CallD THROW_TYPE_ERROR(); if (len == 0) { - if (callData->argc == 1) + if (callData->argc() == 1) THROW_TYPE_ERROR(); return callData->argument(1); } @@ -1023,7 +1024,7 @@ ReturnedValue ArrayPrototype::method_reduceRight(const BuiltinFunction *b, CallD uint k = len; ScopedValue acc(scope); ScopedValue v(scope); - if (callData->argc > 1) { + if (callData->argc() > 1) { acc = callData->argument(1); } else { bool kPresent = false; diff --git a/src/qml/jsruntime/qv4booleanobject.cpp b/src/qml/jsruntime/qv4booleanobject.cpp index d74750fa8c..d4e02e0356 100644 --- a/src/qml/jsruntime/qv4booleanobject.cpp +++ b/src/qml/jsruntime/qv4booleanobject.cpp @@ -52,13 +52,13 @@ void Heap::BooleanCtor::init(QV4::ExecutionContext *scope) ReturnedValue BooleanCtor::construct(const Managed *that, CallData *callData) { - bool n = callData->argc ? callData->args[0].toBoolean() : false; + bool n = callData->argc() ? callData->args[0].toBoolean() : false; return Encode(that->engine()->newBooleanObject(n)); } ReturnedValue BooleanCtor::call(const Managed *, CallData *callData) { - bool value = callData->argc ? callData->args[0].toBoolean() : 0; + bool value = callData->argc() ? callData->args[0].toBoolean() : 0; return Encode(value); } diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index b4edd34380..2598c079b8 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -57,7 +57,7 @@ DEFINE_MANAGED_VTABLE(CatchContext); Heap::CallContext *ExecutionContext::newCallContext(Heap::ExecutionContext *outer, Function *function, CallData *callData) { - uint nFormals = qMax(static_cast(callData->argc), function->nFormals); + uint nFormals = qMax(static_cast(callData->argc()), function->nFormals); uint localsAndFormals = function->compiledFunction->nLocals + nFormals; size_t requiredMemory = sizeof(CallContext::Data) - sizeof(Value) + sizeof(Value) * (localsAndFormals); @@ -83,7 +83,7 @@ Heap::CallContext *ExecutionContext::newCallContext(Heap::ExecutionContext *oute #endif ::memcpy(c->locals.values + nLocals, &callData->args[0], nFormals * sizeof(Value)); - c->nArgs = callData->argc; + c->nArgs = callData->argc(); return c; } diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index ec027c9fd3..7ed3320f8a 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -86,17 +86,20 @@ struct CallData Value context; Value accumulator; Value thisObject; + Value _argc; + + int argc() const { + Q_ASSERT(_argc.isInteger()); + return _argc.int_32(); + } + + void setArgc(int argc) { + Q_ASSERT(argc >= 0); + _argc.setInt_32(argc); + } - // below is to be compatible with Value. Initialize tag to 0 -#if Q_BYTE_ORDER != Q_LITTLE_ENDIAN - uint tag; -#endif - int argc; -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - uint tag; -#endif inline ReturnedValue argument(int i) const { - return i < argc ? args[i].asReturnedValue() : Primitive::undefinedValue().asReturnedValue(); + return i < argc() ? args[i].asReturnedValue() : Primitive::undefinedValue().asReturnedValue(); } Value args[1]; diff --git a/src/qml/jsruntime/qv4dataview.cpp b/src/qml/jsruntime/qv4dataview.cpp index 57b5045f57..73163a9e32 100644 --- a/src/qml/jsruntime/qv4dataview.cpp +++ b/src/qml/jsruntime/qv4dataview.cpp @@ -61,10 +61,10 @@ ReturnedValue DataViewCtor::construct(const Managed *m, CallData *callData) if (!buffer) return scope.engine->throwTypeError(); - double bo = callData->argc > 1 ? callData->args[1].toNumber() : 0; + double bo = callData->argc() > 1 ? callData->args[1].toNumber() : 0; uint byteOffset = (uint)bo; uint bufferLength = buffer->d()->data->size; - double bl = callData->argc < 3 || callData->args[2].isUndefined() ? (bufferLength - bo) : callData->args[2].toNumber(); + double bl = callData->argc() < 3 || callData->args[2].isUndefined() ? (bufferLength - bo) : callData->args[2].toNumber(); uint byteLength = (uint)bl; if (bo != byteOffset || bl != byteLength || byteOffset + byteLength > bufferLength) return scope.engine->throwRangeError(QStringLiteral("DataView: constructor arguments out of range")); @@ -150,7 +150,7 @@ template ReturnedValue DataViewPrototype::method_getChar(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -167,7 +167,7 @@ template ReturnedValue DataViewPrototype::method_get(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -175,7 +175,7 @@ ReturnedValue DataViewPrototype::method_get(const BuiltinFunction *b, CallData * return b->engine()->throwTypeError(); idx += v->d()->byteOffset; - bool littleEndian = callData->argc < 2 ? false : callData->args[1].toBoolean(); + bool littleEndian = callData->argc() < 2 ? false : callData->args[1].toBoolean(); T t = littleEndian ? qFromLittleEndian((uchar *)v->d()->buffer->data->data() + idx) @@ -188,7 +188,7 @@ template ReturnedValue DataViewPrototype::method_getFloat(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -196,7 +196,7 @@ ReturnedValue DataViewPrototype::method_getFloat(const BuiltinFunction *b, CallD return b->engine()->throwTypeError(); idx += v->d()->byteOffset; - bool littleEndian = callData->argc < 2 ? false : callData->args[1].toBoolean(); + bool littleEndian = callData->argc() < 2 ? false : callData->args[1].toBoolean(); if (sizeof(T) == 4) { // float @@ -225,7 +225,7 @@ template ReturnedValue DataViewPrototype::method_setChar(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -233,7 +233,7 @@ ReturnedValue DataViewPrototype::method_setChar(const BuiltinFunction *b, CallDa return b->engine()->throwTypeError(); idx += v->d()->byteOffset; - int val = callData->argc >= 2 ? callData->args[1].toInt32() : 0; + int val = callData->argc() >= 2 ? callData->args[1].toInt32() : 0; v->d()->buffer->data->data()[idx] = (char)val; RETURN_UNDEFINED(); @@ -243,7 +243,7 @@ template ReturnedValue DataViewPrototype::method_set(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -251,9 +251,9 @@ ReturnedValue DataViewPrototype::method_set(const BuiltinFunction *b, CallData * return b->engine()->throwTypeError(); idx += v->d()->byteOffset; - int val = callData->argc >= 2 ? callData->args[1].toInt32() : 0; + int val = callData->argc() >= 2 ? callData->args[1].toInt32() : 0; - bool littleEndian = callData->argc < 3 ? false : callData->args[2].toBoolean(); + bool littleEndian = callData->argc() < 3 ? false : callData->args[2].toBoolean(); if (littleEndian) qToLittleEndian(val, (uchar *)v->d()->buffer->data->data() + idx); @@ -267,7 +267,7 @@ template ReturnedValue DataViewPrototype::method_setFloat(const BuiltinFunction *b, CallData *callData) { DataView *v = callData->thisObject.as(); - if (!v || callData->argc < 1) + if (!v || callData->argc() < 1) return b->engine()->throwTypeError(); double l = callData->args[0].toNumber(); uint idx = (uint)l; @@ -275,8 +275,8 @@ ReturnedValue DataViewPrototype::method_setFloat(const BuiltinFunction *b, CallD return b->engine()->throwTypeError(); idx += v->d()->byteOffset; - double val = callData->argc >= 2 ? callData->args[1].toNumber() : qt_qnan(); - bool littleEndian = callData->argc < 3 ? false : callData->args[2].toBoolean(); + double val = callData->argc() >= 2 ? callData->args[1].toNumber() : qt_qnan(); + bool littleEndian = callData->argc() < 3 ? false : callData->args[2].toBoolean(); if (sizeof(T) == 4) { // float diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp index 64aecfe352..36ba36f2d3 100644 --- a/src/qml/jsruntime/qv4dateobject.cpp +++ b/src/qml/jsruntime/qv4dateobject.cpp @@ -682,10 +682,10 @@ ReturnedValue DateCtor::construct(const Managed *that, CallData *callData) { double t = 0; - if (callData->argc == 0) + if (callData->argc() == 0) t = currentTime(); - else if (callData->argc == 1) { + else if (callData->argc() == 1) { Scope scope(that->engine()); ScopedValue arg(scope, callData->args[0]); if (DateObject *d = arg->as()) { @@ -703,11 +703,11 @@ ReturnedValue DateCtor::construct(const Managed *that, CallData *callData) else { // d.argc > 1 double year = callData->args[0].toNumber(); double month = callData->args[1].toNumber(); - double day = callData->argc >= 3 ? callData->args[2].toNumber() : 1; - double hours = callData->argc >= 4 ? callData->args[3].toNumber() : 0; - double mins = callData->argc >= 5 ? callData->args[4].toNumber() : 0; - double secs = callData->argc >= 6 ? callData->args[5].toNumber() : 0; - double ms = callData->argc >= 7 ? callData->args[6].toNumber() : 0; + double day = callData->argc() >= 3 ? callData->args[2].toNumber() : 1; + double hours = callData->argc() >= 4 ? callData->args[3].toNumber() : 0; + double mins = callData->argc() >= 5 ? callData->args[4].toNumber() : 0; + double secs = callData->argc() >= 6 ? callData->args[5].toNumber() : 0; + double ms = callData->argc() >= 7 ? callData->args[6].toNumber() : 0; if (year >= 0 && year <= 99) year += 1900; t = MakeDate(MakeDay(year, month, day), MakeTime(hours, mins, secs, ms)); @@ -809,7 +809,7 @@ double DatePrototype::getThisDate(ExecutionEngine *v4, CallData *callData) ReturnedValue DatePrototype::method_parse(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) return Encode(qt_qnan()); else return Encode(ParseString(callData->args[0].toQString())); @@ -817,7 +817,7 @@ ReturnedValue DatePrototype::method_parse(const BuiltinFunction *, CallData *cal ReturnedValue DatePrototype::method_UTC(const BuiltinFunction *, CallData *callData) { - const int numArgs = callData->argc; + const int numArgs = callData->argc(); if (numArgs >= 2) { double year = callData->args[0].toNumber(); double month = callData->args[1].toNumber(); @@ -1066,7 +1066,7 @@ ReturnedValue DatePrototype::method_setTime(const BuiltinFunction *b, CallData * if (!self) return v4->throwTypeError(); - double t = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double t = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); self->setDate(TimeClip(t)); @@ -1083,7 +1083,7 @@ ReturnedValue DatePrototype::method_setMilliseconds(const BuiltinFunction *b, Ca double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double ms = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double ms = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); self->setDate(TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms))))); @@ -1100,7 +1100,7 @@ ReturnedValue DatePrototype::method_setUTCMilliseconds(const BuiltinFunction *b, double t = self->date(); if (v4->hasException) return QV4::Encode::undefined(); - double ms = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double ms = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); self->setDate(TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), ms)))); @@ -1117,10 +1117,10 @@ ReturnedValue DatePrototype::method_setSeconds(const BuiltinFunction *b, CallDat double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double sec = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double sec = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); - double ms = (callData->argc < 2) ? msFromTime(t) : callData->args[1].toNumber(); + double ms = (callData->argc() < 2) ? msFromTime(t) : callData->args[1].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), sec, ms)))); @@ -1136,8 +1136,8 @@ ReturnedValue DatePrototype::method_setUTCSeconds(const BuiltinFunction *b, Call return v4->throwTypeError(); double t = self->date(); - double sec = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double ms = (callData->argc < 2) ? msFromTime(t) : callData->args[1].toNumber(); + double sec = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double ms = (callData->argc() < 2) ? msFromTime(t) : callData->args[1].toNumber(); t = TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), sec, ms))); self->setDate(t); return Encode(self->date()); @@ -1153,13 +1153,13 @@ ReturnedValue DatePrototype::method_setMinutes(const BuiltinFunction *b, CallDat double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double min = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double min = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); - double sec = (callData->argc < 2) ? SecFromTime(t) : callData->args[1].toNumber(); + double sec = (callData->argc() < 2) ? SecFromTime(t) : callData->args[1].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); - double ms = (callData->argc < 3) ? msFromTime(t) : callData->args[2].toNumber(); + double ms = (callData->argc() < 3) ? msFromTime(t) : callData->args[2].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(Day(t), MakeTime(HourFromTime(t), min, sec, ms)))); @@ -1175,9 +1175,9 @@ ReturnedValue DatePrototype::method_setUTCMinutes(const BuiltinFunction *b, Call return v4->throwTypeError(); double t = self->date(); - double min = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double sec = (callData->argc < 2) ? SecFromTime(t) : callData->args[1].toNumber(); - double ms = (callData->argc < 3) ? msFromTime(t) : callData->args[2].toNumber(); + double min = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double sec = (callData->argc() < 2) ? SecFromTime(t) : callData->args[1].toNumber(); + double ms = (callData->argc() < 3) ? msFromTime(t) : callData->args[2].toNumber(); t = TimeClip(MakeDate(Day(t), MakeTime(HourFromTime(t), min, sec, ms))); self->setDate(t); return Encode(self->date()); @@ -1193,16 +1193,16 @@ ReturnedValue DatePrototype::method_setHours(const BuiltinFunction *b, CallData double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double hour = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double hour = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); - double min = (callData->argc < 2) ? MinFromTime(t) : callData->args[1].toNumber(); + double min = (callData->argc() < 2) ? MinFromTime(t) : callData->args[1].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); - double sec = (callData->argc < 3) ? SecFromTime(t) : callData->args[2].toNumber(); + double sec = (callData->argc() < 3) ? SecFromTime(t) : callData->args[2].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); - double ms = (callData->argc < 4) ? msFromTime(t) : callData->args[3].toNumber(); + double ms = (callData->argc() < 4) ? msFromTime(t) : callData->args[3].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(Day(t), MakeTime(hour, min, sec, ms)))); @@ -1218,10 +1218,10 @@ ReturnedValue DatePrototype::method_setUTCHours(const BuiltinFunction *b, CallDa return v4->throwTypeError(); double t = self->date(); - double hour = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double min = (callData->argc < 2) ? MinFromTime(t) : callData->args[1].toNumber(); - double sec = (callData->argc < 3) ? SecFromTime(t) : callData->args[2].toNumber(); - double ms = (callData->argc < 4) ? msFromTime(t) : callData->args[3].toNumber(); + double hour = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double min = (callData->argc() < 2) ? MinFromTime(t) : callData->args[1].toNumber(); + double sec = (callData->argc() < 3) ? SecFromTime(t) : callData->args[2].toNumber(); + double ms = (callData->argc() < 4) ? msFromTime(t) : callData->args[3].toNumber(); t = TimeClip(MakeDate(Day(t), MakeTime(hour, min, sec, ms))); self->setDate(t); return Encode(self->date()); @@ -1237,7 +1237,7 @@ ReturnedValue DatePrototype::method_setDate(const BuiltinFunction *b, CallData * double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double date = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double date = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), date), TimeWithinDay(t)))); @@ -1255,7 +1255,7 @@ ReturnedValue DatePrototype::method_setUTCDate(const BuiltinFunction *b, CallDat double t = self->date(); if (v4->hasException) return QV4::Encode::undefined(); - double date = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double date = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), date), TimeWithinDay(t))); @@ -1273,10 +1273,10 @@ ReturnedValue DatePrototype::method_setMonth(const BuiltinFunction *b, CallData double t = LocalTime(self->date()); if (v4->hasException) return QV4::Encode::undefined(); - double month = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double month = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); - double date = (callData->argc < 2) ? DateFromTime(t) : callData->args[1].toNumber(); + double date = (callData->argc() < 2) ? DateFromTime(t) : callData->args[1].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(MakeDay(YearFromTime(t), month, date), TimeWithinDay(t)))); @@ -1292,8 +1292,8 @@ ReturnedValue DatePrototype::method_setUTCMonth(const BuiltinFunction *b, CallDa return v4->throwTypeError(); double t = self->date(); - double month = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double date = (callData->argc < 2) ? DateFromTime(t) : callData->args[1].toNumber(); + double month = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double date = (callData->argc() < 2) ? DateFromTime(t) : callData->args[1].toNumber(); t = TimeClip(MakeDate(MakeDay(YearFromTime(t), month, date), TimeWithinDay(t))); self->setDate(t); return Encode(self->date()); @@ -1311,7 +1311,7 @@ ReturnedValue DatePrototype::method_setYear(const BuiltinFunction *b, CallData * t = 0; else t = LocalTime(t); - double year = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); double r; if (std::isnan(year)) { r = qt_qnan(); @@ -1334,9 +1334,9 @@ ReturnedValue DatePrototype::method_setUTCFullYear(const BuiltinFunction *b, Cal return v4->throwTypeError(); double t = self->date(); - double year = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double month = (callData->argc < 2) ? MonthFromTime(t) : callData->args[1].toNumber(); - double date = (callData->argc < 3) ? DateFromTime(t) : callData->args[2].toNumber(); + double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double month = (callData->argc() < 2) ? MonthFromTime(t) : callData->args[1].toNumber(); + double date = (callData->argc() < 3) ? DateFromTime(t) : callData->args[2].toNumber(); t = TimeClip(MakeDate(MakeDay(year, month, date), TimeWithinDay(t))); self->setDate(t); return Encode(self->date()); @@ -1354,13 +1354,13 @@ ReturnedValue DatePrototype::method_setFullYear(const BuiltinFunction *b, CallDa return QV4::Encode::undefined(); if (std::isnan(t)) t = 0; - double year = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double year = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v4->hasException) return QV4::Encode::undefined(); - double month = (callData->argc < 2) ? MonthFromTime(t) : callData->args[1].toNumber(); + double month = (callData->argc() < 2) ? MonthFromTime(t) : callData->args[1].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); - double date = (callData->argc < 3) ? DateFromTime(t) : callData->args[2].toNumber(); + double date = (callData->argc() < 3) ? DateFromTime(t) : callData->args[2].toNumber(); if (v4->hasException) return QV4::Encode::undefined(); t = TimeClip(UTC(MakeDate(MakeDay(year, month, date), TimeWithinDay(t)))); diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 3f971fcca5..98b3766242 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -185,13 +185,13 @@ ReturnedValue FunctionCtor::construct(const Managed *that, CallData *callData) QString arguments; QString body; - if (callData->argc > 0) { - for (int i = 0; i < callData->argc - 1; ++i) { + if (callData->argc() > 0) { + for (int i = 0, ei = callData->argc() - 1; i < ei; ++i) { if (i) arguments += QLatin1String(", "); arguments += callData->args[i].toQString(); } - body = callData->args[callData->argc - 1].toQString(); + body = callData->args[callData->argc() - 1].toQString(); } if (scope.engine->hasException) return Encode::undefined(); @@ -321,10 +321,10 @@ ReturnedValue FunctionPrototype::method_call(const BuiltinFunction *b, CallData return e->throwTypeError(); } callData->function = callData->thisObject; - callData->thisObject = callData->argc ? callData->args[0] : Primitive::undefinedValue(); - if (callData->argc) { - --callData->argc; - for (int i = 0; i < callData->argc; ++i) + callData->thisObject = callData->argc() ? callData->args[0] : Primitive::undefinedValue(); + if (callData->argc()) { + callData->setArgc(callData->argc() - 1); + for (int i = 0, ei = callData->argc(); i < ei; ++i) callData->args[i] = callData->args[i + 1]; } return static_cast(callData->function).call(callData); @@ -339,10 +339,10 @@ ReturnedValue FunctionPrototype::method_bind(const BuiltinFunction *b, CallData ScopedValue boundThis(scope, callData->argument(0)); Scoped boundArgs(scope, (Heap::MemberData *)0); - if (callData->argc > 1) { - boundArgs = MemberData::allocate(scope.engine, callData->argc - 1); - boundArgs->d()->values.size = callData->argc - 1; - for (uint i = 0; i < static_cast(callData->argc - 1); ++i) + if (callData->argc() > 1) { + boundArgs = MemberData::allocate(scope.engine, callData->argc() - 1); + boundArgs->d()->values.size = callData->argc() - 1; + for (uint i = 0, ei = static_cast(callData->argc() - 1); i < ei; ++i) boundArgs->set(scope.engine, i, callData->args[i + 1]); } @@ -487,14 +487,14 @@ ReturnedValue BoundFunction::call(const Managed *that, CallData *dd) return Encode::undefined(); Scoped boundArgs(scope, f->boundArgs()); - JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc); + JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc()); jsCall->thisObject = f->boundThis(); Value *argp = jsCall->args; if (boundArgs) { memcpy(argp, boundArgs->data(), boundArgs->size()*sizeof(Value)); argp += boundArgs->size(); } - memcpy(argp, dd->args, dd->argc*sizeof(Value)); + memcpy(argp, dd->args, dd->argc()*sizeof(Value)); return jsCall.call(); } @@ -507,12 +507,12 @@ ReturnedValue BoundFunction::construct(const Managed *that, CallData *dd) return Encode::undefined(); Scoped boundArgs(scope, f->boundArgs()); - JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc); + JSCall jsCall(scope, f->target(), (boundArgs ? boundArgs->size() : 0) + dd->argc()); Value *argp = jsCall->args; if (boundArgs) { memcpy(argp, boundArgs->data(), boundArgs->size()*sizeof(Value)); argp += boundArgs->size(); } - memcpy(argp, dd->args, dd->argc*sizeof(Value)); + memcpy(argp, dd->args, dd->argc()*sizeof(Value)); return jsCall.callAsConstructor(); } diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp index 11105dfdcb..668fea25e7 100644 --- a/src/qml/jsruntime/qv4globalobject.cpp +++ b/src/qml/jsruntime/qv4globalobject.cpp @@ -340,7 +340,7 @@ void Heap::EvalFunction::init(QV4::ExecutionContext *scope) ReturnedValue EvalFunction::evalCall(CallData *callData, bool directCall) const { - if (callData->argc < 1) + if (callData->argc() < 1) return Encode::undefined(); ExecutionEngine *v4 = engine(); @@ -528,7 +528,7 @@ ReturnedValue GlobalFunctions::method_parseFloat(const BuiltinFunction *b, CallD /// isNaN [15.1.2.4] ReturnedValue GlobalFunctions::method_isNaN(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) // undefined gets converted to NaN RETURN_RESULT(Encode(true)); @@ -542,7 +542,7 @@ ReturnedValue GlobalFunctions::method_isNaN(const BuiltinFunction *, CallData *c /// isFinite [15.1.2.5] ReturnedValue GlobalFunctions::method_isFinite(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) // undefined gets converted to NaN RETURN_RESULT(Encode(false)); @@ -556,7 +556,7 @@ ReturnedValue GlobalFunctions::method_isFinite(const BuiltinFunction *, CallData /// decodeURI [15.1.3.1] ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallData *callData) { - if (callData->argc == 0) + if (callData->argc() == 0) RETURN_UNDEFINED(); ExecutionEngine *v4 = b->engine(); @@ -575,7 +575,7 @@ ReturnedValue GlobalFunctions::method_decodeURI(const BuiltinFunction *b, CallDa /// decodeURIComponent [15.1.3.2] ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction *b, CallData *callData) { - if (callData->argc == 0) + if (callData->argc() == 0) RETURN_UNDEFINED(); ExecutionEngine *v4 = b->engine(); @@ -594,7 +594,7 @@ ReturnedValue GlobalFunctions::method_decodeURIComponent(const BuiltinFunction * /// encodeURI [15.1.3.3] ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallData *callData) { - if (callData->argc == 0) + if (callData->argc() == 0) RETURN_UNDEFINED(); ExecutionEngine *v4 = b->engine(); @@ -613,7 +613,7 @@ ReturnedValue GlobalFunctions::method_encodeURI(const BuiltinFunction *b, CallDa /// encodeURIComponent [15.1.3.4] ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction *b, CallData *callData) { - if (callData->argc == 0) + if (callData->argc() == 0) RETURN_UNDEFINED(); ExecutionEngine *v4 = b->engine(); @@ -632,7 +632,7 @@ ReturnedValue GlobalFunctions::method_encodeURIComponent(const BuiltinFunction * ReturnedValue GlobalFunctions::method_escape(const BuiltinFunction *b, CallData *callData) { ExecutionEngine *v4 = b->engine(); - if (!callData->argc) + if (!callData->argc()) RETURN_RESULT(v4->newString(QStringLiteral("undefined"))); QString str = callData->args[0].toQString(); @@ -642,7 +642,7 @@ ReturnedValue GlobalFunctions::method_escape(const BuiltinFunction *b, CallData ReturnedValue GlobalFunctions::method_unescape(const BuiltinFunction *b, CallData *callData) { ExecutionEngine *v4 = b->engine(); - if (!callData->argc) + if (!callData->argc()) RETURN_RESULT(v4->newString(QStringLiteral("undefined"))); QString str = callData->args[0].toQString(); diff --git a/src/qml/jsruntime/qv4include.cpp b/src/qml/jsruntime/qv4include.cpp index 8983bea1a8..8122f61a5e 100644 --- a/src/qml/jsruntime/qv4include.cpp +++ b/src/qml/jsruntime/qv4include.cpp @@ -199,7 +199,7 @@ void QV4Include::finished() QV4::ReturnedValue QV4Include::method_include(const QV4::BuiltinFunction *b, QV4::CallData *callData) { QV4::Scope scope(b); - if (!callData->argc) + if (!callData->argc()) RETURN_UNDEFINED(); QQmlContextData *context = scope.engine->callingQmlContext(); @@ -208,7 +208,7 @@ QV4::ReturnedValue QV4Include::method_include(const QV4::BuiltinFunction *b, QV4 RETURN_RESULT(scope.engine->throwError(QString::fromUtf8("Qt.include(): Can only be called from JavaScript files"))); QV4::ScopedValue callbackFunction(scope, QV4::Primitive::undefinedValue()); - if (callData->argc >= 2 && callData->args[1].as()) + if (callData->argc() >= 2 && callData->args[1].as()) callbackFunction = callData->args[1]; #if QT_CONFIG(qml_network) diff --git a/src/qml/jsruntime/qv4jscall_p.h b/src/qml/jsruntime/qv4jscall_p.h index 78201a0ba8..8fd6119102 100644 --- a/src/qml/jsruntime/qv4jscall_p.h +++ b/src/qml/jsruntime/qv4jscall_p.h @@ -65,23 +65,20 @@ struct JSCall { { int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount)); ptr = reinterpret_cast(scope.alloc(size)); - ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer); - ptr->argc = argc; + ptr->setArgc(argc); } JSCall(const Scope &scope, const FunctionObject *function, int argc = 0) { int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount)); ptr = reinterpret_cast(scope.alloc(size)); - ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer); - ptr->argc = argc; + ptr->setArgc(argc); ptr->function = *function; } JSCall(const Scope &scope, Heap::FunctionObject *function, int argc = 0) { int size = int(offsetof(QV4::CallData, args)/sizeof(QV4::Value)) + qMax(argc , int(QV4::Global::ReservedArgumentCount)); ptr = reinterpret_cast(scope.alloc(size)); - ptr->tag = quint32(QV4::Value::ValueTypeInternal::Integer); - ptr->argc = argc; + ptr->setArgc(argc); ptr->function = function; } diff --git a/src/qml/jsruntime/qv4jsonobject.cpp b/src/qml/jsruntime/qv4jsonobject.cpp index 83cfb434dc..fb1f4abbfc 100644 --- a/src/qml/jsruntime/qv4jsonobject.cpp +++ b/src/qml/jsruntime/qv4jsonobject.cpp @@ -888,7 +888,7 @@ ReturnedValue JsonObject::method_parse(const BuiltinFunction *b, CallData *callD { ExecutionEngine *v4 = b->engine(); QString jtext; - if (callData->argc > 0) + if (callData->argc() > 0) jtext = callData->args[0].toQString(); DEBUG << "parsing source = " << jtext; diff --git a/src/qml/jsruntime/qv4mathobject.cpp b/src/qml/jsruntime/qv4mathobject.cpp index cdf5c3117c..5419e45038 100644 --- a/src/qml/jsruntime/qv4mathobject.cpp +++ b/src/qml/jsruntime/qv4mathobject.cpp @@ -95,7 +95,7 @@ static Q_ALWAYS_INLINE double copySign(double x, double y) ReturnedValue MathObject::method_abs(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) RETURN_RESULT(Encode(qt_qnan())); if (callData->args[0].isInteger()) { @@ -112,7 +112,7 @@ ReturnedValue MathObject::method_abs(const BuiltinFunction *, CallData *callData ReturnedValue MathObject::method_acos(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : 2; + double v = callData->argc() ? callData->args[0].toNumber() : 2; if (v > 1) RETURN_RESULT(Encode(qt_qnan())); @@ -121,7 +121,7 @@ ReturnedValue MathObject::method_acos(const BuiltinFunction *, CallData *callDat ReturnedValue MathObject::method_asin(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : 2; + double v = callData->argc() ? callData->args[0].toNumber() : 2; if (v > 1) RETURN_RESULT(Encode(qt_qnan())); else @@ -130,7 +130,7 @@ ReturnedValue MathObject::method_asin(const BuiltinFunction *, CallData *callDat ReturnedValue MathObject::method_atan(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v == 0.0) RETURN_RESULT(Encode(v)); else @@ -139,8 +139,8 @@ ReturnedValue MathObject::method_atan(const BuiltinFunction *, CallData *callDat ReturnedValue MathObject::method_atan2(const BuiltinFunction *, CallData *callData) { - double v1 = callData->argc ? callData->args[0].toNumber() : qt_qnan(); - double v2 = callData->argc > 1 ? callData->args[1].toNumber() : qt_qnan(); + double v1 = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); + double v2 = callData->argc() > 1 ? callData->args[1].toNumber() : qt_qnan(); if ((v1 < 0) && qt_is_finite(v1) && qt_is_inf(v2) && (copySign(1.0, v2) == 1.0)) RETURN_RESULT(Encode(copySign(0, -1.0))); @@ -157,7 +157,7 @@ ReturnedValue MathObject::method_atan2(const BuiltinFunction *, CallData *callDa ReturnedValue MathObject::method_ceil(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v < 0.0 && v > -1.0) RETURN_RESULT(Encode(copySign(0, -1.0))); else @@ -166,13 +166,13 @@ ReturnedValue MathObject::method_ceil(const BuiltinFunction *, CallData *callDat ReturnedValue MathObject::method_cos(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); RETURN_RESULT(Encode(std::cos(v))); } ReturnedValue MathObject::method_exp(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (qt_is_inf(v)) { if (copySign(1.0, v) == -1.0) RETURN_RESULT(Encode(0)); @@ -185,7 +185,7 @@ ReturnedValue MathObject::method_exp(const BuiltinFunction *, CallData *callData ReturnedValue MathObject::method_floor(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); Value result = Primitive::fromDouble(std::floor(v)); result.isInt32(); RETURN_RESULT(result); @@ -193,7 +193,7 @@ ReturnedValue MathObject::method_floor(const BuiltinFunction *, CallData *callDa ReturnedValue MathObject::method_log(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v < 0) RETURN_RESULT(Encode(qt_qnan())); else @@ -203,7 +203,7 @@ ReturnedValue MathObject::method_log(const BuiltinFunction *, CallData *callData ReturnedValue MathObject::method_max(const BuiltinFunction *, CallData *callData) { double mx = -qt_inf(); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { double x = callData->args[i].toNumber(); if (x > mx || std::isnan(x)) mx = x; @@ -214,7 +214,7 @@ ReturnedValue MathObject::method_max(const BuiltinFunction *, CallData *callData ReturnedValue MathObject::method_min(const BuiltinFunction *, CallData *callData) { double mx = qt_inf(); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { double x = callData->args[i].toNumber(); if ((x == 0 && mx == x && copySign(1.0, x) == -1.0) || (x < mx) || std::isnan(x)) { @@ -226,8 +226,8 @@ ReturnedValue MathObject::method_min(const BuiltinFunction *, CallData *callData ReturnedValue MathObject::method_pow(const BuiltinFunction *, CallData *callData) { - double x = callData->argc > 0 ? callData->args[0].toNumber() : qt_qnan(); - double y = callData->argc > 1 ? callData->args[1].toNumber() : qt_qnan(); + double x = callData->argc() > 0 ? callData->args[0].toNumber() : qt_qnan(); + double y = callData->argc() > 1 ? callData->args[1].toNumber() : qt_qnan(); if (std::isnan(y)) RETURN_RESULT(Encode(qt_qnan())); @@ -281,14 +281,14 @@ ReturnedValue MathObject::method_random(const BuiltinFunction *, CallData *) ReturnedValue MathObject::method_round(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); v = copySign(std::floor(v + 0.5), v); RETURN_RESULT(Encode(v)); } ReturnedValue MathObject::method_sign(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (std::isnan(v)) RETURN_RESULT(Encode(qt_qnan())); @@ -301,19 +301,19 @@ ReturnedValue MathObject::method_sign(const BuiltinFunction *, CallData *callDat ReturnedValue MathObject::method_sin(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); RETURN_RESULT(Encode(std::sin(v))); } ReturnedValue MathObject::method_sqrt(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); RETURN_RESULT(Encode(std::sqrt(v))); } ReturnedValue MathObject::method_tan(const BuiltinFunction *, CallData *callData) { - double v = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double v = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (v == 0.0) RETURN_RESULT(Encode(v)); else diff --git a/src/qml/jsruntime/qv4numberobject.cpp b/src/qml/jsruntime/qv4numberobject.cpp index 1db5079355..173a869c3d 100644 --- a/src/qml/jsruntime/qv4numberobject.cpp +++ b/src/qml/jsruntime/qv4numberobject.cpp @@ -80,13 +80,13 @@ void Heap::NumberCtor::init(QV4::ExecutionContext *scope) ReturnedValue NumberCtor::construct(const Managed *m, CallData *callData) { - double dbl = callData->argc ? callData->args[0].toNumber() : 0.; + double dbl = callData->argc() ? callData->args[0].toNumber() : 0.; return Encode(m->engine()->newNumberObject(dbl)); } ReturnedValue NumberCtor::call(const Managed *, CallData *callData) { - double dbl = callData->argc ? callData->args[0].toNumber() : 0.; + double dbl = callData->argc() ? callData->args[0].toNumber() : 0.; return Encode(dbl); } @@ -150,7 +150,7 @@ inline double thisNumber(ExecutionEngine *engine, CallData *callData) ReturnedValue NumberPrototype::method_isFinite(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) return Encode(false); double v = callData->args[0].toNumber(); @@ -159,7 +159,7 @@ ReturnedValue NumberPrototype::method_isFinite(const BuiltinFunction *, CallData ReturnedValue NumberPrototype::method_isInteger(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) return Encode(false); const Value &v = callData->args[0]; @@ -176,7 +176,7 @@ ReturnedValue NumberPrototype::method_isInteger(const BuiltinFunction *, CallDat ReturnedValue NumberPrototype::method_isSafeInteger(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) return Encode(false); const Value &v = callData->args[0]; @@ -193,7 +193,7 @@ ReturnedValue NumberPrototype::method_isSafeInteger(const BuiltinFunction *, Cal ReturnedValue NumberPrototype::method_isNaN(const BuiltinFunction *, CallData *callData) { - if (!callData->argc) + if (!callData->argc()) return Encode(false); double v = callData->args[0].toNumber(); @@ -207,7 +207,7 @@ ReturnedValue NumberPrototype::method_toString(const BuiltinFunction *b, CallDat if (v4->hasException) return QV4::Encode::undefined(); - if (callData->argc && !callData->args[0].isUndefined()) { + if (callData->argc() && !callData->args[0].isUndefined()) { int radix = callData->args[0].toInt32(); if (radix < 2 || radix > 36) { return v4->throwError(QStringLiteral("Number.prototype.toString: %0 is not a valid radix").arg(radix)); @@ -274,7 +274,7 @@ ReturnedValue NumberPrototype::method_toFixed(const BuiltinFunction *b, CallData double fdigits = 0; - if (callData->argc > 0) + if (callData->argc() > 0) fdigits = callData->args[0].toInteger(); if (std::isnan(fdigits)) @@ -306,7 +306,7 @@ ReturnedValue NumberPrototype::method_toExponential(const BuiltinFunction *b, Ca int fdigits = NumberLocale::instance()->defaultDoublePrecision; - if (callData->argc && !callData->args[0].isUndefined()) { + if (callData->argc() && !callData->args[0].isUndefined()) { fdigits = callData->args[0].toInt32(); if (fdigits < 0 || fdigits > 20) { Scope scope(v4); @@ -327,7 +327,7 @@ ReturnedValue NumberPrototype::method_toPrecision(const BuiltinFunction *b, Call return QV4::Encode::undefined(); - if (!callData->argc || callData->args[0].isUndefined()) + if (!callData->argc() || callData->args[0].isUndefined()) return Encode(v->toString(scope.engine)); int precision = callData->args[0].toInt32(); diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index 0f60881db1..9010faf0b2 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -65,7 +65,7 @@ ReturnedValue ObjectCtor::construct(const Managed *m, CallData *callData) { ExecutionEngine *v4 = m->engine(); const ObjectCtor *ctor = static_cast(m); - if (!callData->argc || callData->args[0].isUndefined() || callData->args[0].isNull()) { + if (!callData->argc() || callData->args[0].isUndefined() || callData->args[0].isNull()) { Scope scope(v4); ScopedObject obj(scope, scope.engine->newObject()); ScopedObject proto(scope, ctor->get(scope.engine->id_prototype())); @@ -80,7 +80,7 @@ ReturnedValue ObjectCtor::construct(const Managed *m, CallData *callData) ReturnedValue ObjectCtor::call(const Managed *m, CallData *callData) { ExecutionEngine *v4 = m->engine(); - if (!callData->argc || callData->args[0].isUndefined() || callData->args[0].isNull()) { + if (!callData->argc() || callData->args[0].isUndefined() || callData->args[0].isNull()) { return v4->newObject()->asReturnedValue(); } else { return callData->args[0].toObject(v4)->asReturnedValue(); @@ -129,7 +129,7 @@ void ObjectPrototype::init(ExecutionEngine *v4, Object *ctor) ReturnedValue ObjectPrototype::method_getPrototypeOf(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) return scope.engine->throwTypeError(); ScopedObject o(scope, callData->args[0].toObject(scope.engine)); @@ -143,7 +143,7 @@ ReturnedValue ObjectPrototype::method_getPrototypeOf(const BuiltinFunction *b, C ReturnedValue ObjectPrototype::method_getOwnPropertyDescriptor(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) return scope.engine->throwTypeError(); ScopedObject O(scope, callData->args[0].toObject(scope.engine)); @@ -167,7 +167,7 @@ ReturnedValue ObjectPrototype::method_getOwnPropertyDescriptor(const BuiltinFunc ReturnedValue ObjectPrototype::method_getOwnPropertyNames(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) return scope.engine->throwTypeError(); ScopedObject O(scope, callData->args[0].toObject(scope.engine)); @@ -181,17 +181,17 @@ ReturnedValue ObjectPrototype::method_getOwnPropertyNames(const BuiltinFunction ReturnedValue ObjectPrototype::method_assign(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) return scope.engine->throwTypeError(); ScopedObject to(scope, callData->args[0].toObject(scope.engine)); if (scope.engine->hasException) return QV4::Encode::undefined(); - if (callData->argc == 1) + if (callData->argc() == 1) return to.asReturnedValue(); - for (int i = 1; i < callData->argc; ++i) { + for (int i = 1, ei = callData->argc(); i < ei; ++i) { if (callData->args[i].isUndefined() || callData->args[i].isNull()) continue; @@ -236,7 +236,7 @@ ReturnedValue ObjectPrototype::method_create(const BuiltinFunction *builtin, Cal ScopedObject newObject(scope, scope.engine->newObject()); newObject->setPrototype(O->as()); - if (callData->argc > 1 && !callData->args[1].isUndefined()) { + if (callData->argc() > 1 && !callData->args[1].isUndefined()) { callData->args[0] = newObject; return method_defineProperties(builtin, callData); } @@ -541,7 +541,7 @@ ReturnedValue ObjectPrototype::method_propertyIsEnumerable(const BuiltinFunction ReturnedValue ObjectPrototype::method_defineGetter(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 2) + if (callData->argc() < 2) THROW_TYPE_ERROR(); ScopedFunctionObject f(scope, callData->argument(1)); @@ -571,7 +571,7 @@ ReturnedValue ObjectPrototype::method_defineGetter(const BuiltinFunction *b, Cal ReturnedValue ObjectPrototype::method_defineSetter(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc < 2) + if (callData->argc() < 2) THROW_TYPE_ERROR(); ScopedFunctionObject f(scope, callData->argument(1)); @@ -612,7 +612,7 @@ ReturnedValue ObjectPrototype::method_set_proto(const BuiltinFunction *b, CallDa { Scope scope(b); ScopedObject o(scope, callData->thisObject); - if (!o || !callData->argc) + if (!o || !callData->argc()) THROW_TYPE_ERROR(); if (callData->args[0].isNull()) { diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index 40dfeefdcc..400d0f8cb2 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -904,7 +904,7 @@ ReturnedValue QObjectWrapper::method_connect(const BuiltinFunction *b, CallData { QV4::Scope scope(b); - if (callData->argc == 0) + if (callData->argc() == 0) THROW_GENERIC_ERROR("Function.prototype.connect: no arguments given"); QPair signalInfo = extractQtSignal(callData->thisObject); @@ -923,9 +923,9 @@ ReturnedValue QObjectWrapper::method_connect(const BuiltinFunction *b, CallData QV4::ScopedFunctionObject f(scope); QV4::ScopedValue thisObject (scope, QV4::Encode::undefined()); - if (callData->argc == 1) { + if (callData->argc() == 1) { f = callData->args[0]; - } else if (callData->argc >= 2) { + } else if (callData->argc() >= 2) { thisObject = callData->args[0]; f = callData->args[1]; } @@ -956,7 +956,7 @@ ReturnedValue QObjectWrapper::method_disconnect(const BuiltinFunction *b, CallDa { QV4::Scope scope(b); - if (callData->argc == 0) + if (callData->argc() == 0) THROW_GENERIC_ERROR("Function.prototype.disconnect: no arguments given"); QPair signalInfo = extractQtSignal(callData->thisObject); @@ -975,9 +975,9 @@ ReturnedValue QObjectWrapper::method_disconnect(const BuiltinFunction *b, CallDa QV4::ScopedFunctionObject functionValue(scope); QV4::ScopedValue functionThisValue(scope, QV4::Encode::undefined()); - if (callData->argc == 1) { + if (callData->argc() == 1) { functionValue = callData->args[0]; - } else if (callData->argc >= 2) { + } else if (callData->argc() >= 2) { functionThisValue = callData->args[0]; functionValue = callData->args[1]; } @@ -1413,7 +1413,7 @@ static QV4::ReturnedValue CallPrecise(const QQmlObjectOrGadget &object, const QQ + QLatin1String(unknownTypeError)); } - if (args[0] > callArgs->argc) { + if (args[0] > callArgs->argc()) { QString error = QLatin1String("Insufficient arguments"); return engine->throwError(error); } @@ -1444,7 +1444,7 @@ static QV4::ReturnedValue CallOverloaded(const QQmlObjectOrGadget &object, const QV4::ExecutionEngine *engine, QV4::CallData *callArgs, const QQmlPropertyCache *propertyCache, QMetaObject::Call callType = QMetaObject::InvokeMetaMethod) { - int argumentCount = callArgs->argc; + int argumentCount = callArgs->argc(); QQmlPropertyData best; int bestParameterScore = INT_MAX; @@ -1900,7 +1900,7 @@ ReturnedValue QObjectMethod::callInternal(CallData *callData) const { ExecutionEngine *v4 = engine(); if (d()->index == DestroyMethod) - return method_destroy(v4, callData->args, callData->argc); + return method_destroy(v4, callData->args, callData->argc()); else if (d()->index == ToStringMethod) return method_toString(v4); @@ -2061,7 +2061,7 @@ ReturnedValue QMetaObjectWrapper::callConstructor(const QQmlPropertyData &data, ReturnedValue QMetaObjectWrapper::callOverloadedConstructor(QV4::ExecutionEngine *engine, QV4::CallData *callArgs) const { const int numberOfConstructors = d()->constructorCount; - const int argumentCount = callArgs->argc; + const int argumentCount = callArgs->argc(); const QQmlStaticMetaObject object(d()->metaObject); QQmlPropertyData best; diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index c3a4275cac..d4d646be3f 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -268,10 +268,9 @@ ReturnedValue RegExpCtor::construct(const Managed *m, CallData *callData) ReturnedValue RegExpCtor::call(const Managed *that, CallData *callData) { - if (callData->argc > 0 && callData->args[0].as()) { - if (callData->argc == 1 || callData->args[1].isUndefined()) { + if (callData->argc() > 0 && callData->args[0].as()) { + if (callData->argc() == 1 || callData->args[1].isUndefined()) return Encode(callData->args[0]); - } } return construct(that, callData); @@ -440,8 +439,8 @@ ReturnedValue RegExpPrototype::method_compile(const BuiltinFunction *b, CallData if (!r) return scope.engine->throwTypeError(); - JSCall jsCall(scope, scope.engine->regExpCtor(), callData->argc); - memcpy(jsCall->args, callData->args, callData->argc*sizeof(Value)); + JSCall jsCall(scope, scope.engine->regExpCtor(), callData->argc()); + memcpy(jsCall->args, callData->args, callData->argc()*sizeof(Value)); Scoped re(scope, jsCall.callAsConstructor()); diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 28b20169d9..7373e07340 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -441,7 +441,7 @@ public: loadReference(); } - if (callData->argc == 1 && callData->args[0].as()) { + if (callData->argc() == 1 && callData->args[0].as()) { CompareFunctor cf(scope.engine, callData->args[0]); std::sort(d()->container->begin(), d()->container->end(), cf); } else { @@ -664,7 +664,7 @@ ReturnedValue SequencePrototype::method_sort(const BuiltinFunction *b, CallData if (!o || !o->isListType()) THROW_TYPE_ERROR(); - if (callData->argc >= 2) + if (callData->argc() >= 2) return o.asReturnedValue(); #define CALL_SORT(SequenceElementType, SequenceElementTypeName, SequenceType, DefaultValue) \ diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index 2fc05e4f56..d6dbeacb2d 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -148,7 +148,7 @@ ReturnedValue StringCtor::construct(const Managed *m, CallData *callData) ExecutionEngine *v4 = static_cast(m)->engine(); Scope scope(v4); ScopedString value(scope); - if (callData->argc) + if (callData->argc()) value = callData->args[0].toString(v4); else value = v4->newString(); @@ -158,7 +158,7 @@ ReturnedValue StringCtor::construct(const Managed *m, CallData *callData) ReturnedValue StringCtor::call(const Managed *m, CallData *callData) { ExecutionEngine *v4 = m->engine(); - if (callData->argc) + if (callData->argc()) return callData->args[0].toString(v4)->asReturnedValue(); else return v4->newString()->asReturnedValue(); @@ -234,7 +234,7 @@ ReturnedValue StringPrototype::method_charAt(const BuiltinFunction *b, CallData return QV4::Encode::undefined(); int pos = 0; - if (callData->argc > 0) + if (callData->argc() > 0) pos = (int) callData->args[0].toInteger(); QString result; @@ -252,7 +252,7 @@ ReturnedValue StringPrototype::method_charCodeAt(const BuiltinFunction *b, CallD return QV4::Encode::undefined(); int pos = 0; - if (callData->argc > 0) + if (callData->argc() > 0) pos = (int) callData->args[0].toInteger(); @@ -271,7 +271,7 @@ ReturnedValue StringPrototype::method_concat(const BuiltinFunction *b, CallData Scope scope(v4); ScopedString s(scope); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0; i < callData->argc(); ++i) { s = callData->args[i].toString(scope.engine); if (v4->hasException) return QV4::Encode::undefined(); @@ -291,14 +291,14 @@ ReturnedValue StringPrototype::method_endsWith(const BuiltinFunction *b, CallDat return QV4::Encode::undefined(); QString searchString; - if (callData->argc) { + if (callData->argc()) { if (callData->args[0].as()) return v4->throwTypeError(); searchString = callData->args[0].toQString(); } int pos = value.length(); - if (callData->argc > 1) + if (callData->argc() > 1) pos = (int) callData->args[1].toInteger(); if (pos == value.length()) @@ -316,11 +316,11 @@ ReturnedValue StringPrototype::method_indexOf(const BuiltinFunction *b, CallData return QV4::Encode::undefined(); QString searchString; - if (callData->argc) + if (callData->argc()) searchString = callData->args[0].toQString(); int pos = 0; - if (callData->argc > 1) + if (callData->argc() > 1) pos = (int) callData->args[1].toInteger(); int index = -1; @@ -338,14 +338,14 @@ ReturnedValue StringPrototype::method_includes(const BuiltinFunction *b, CallDat return QV4::Encode::undefined(); QString searchString; - if (callData->argc) { + if (callData->argc()) { if (callData->args[0].as()) return v4->throwTypeError(); searchString = callData->args[0].toQString(); } int pos = 0; - if (callData->argc > 1) { + if (callData->argc() > 1) { Value &posArg = callData->args[1]; pos = (int) posArg.toInteger(); if (!posArg.isInteger() && posArg.isNumber() && qIsInf(posArg.toNumber())) @@ -367,10 +367,10 @@ ReturnedValue StringPrototype::method_lastIndexOf(const BuiltinFunction *b, Call return QV4::Encode::undefined(); QString searchString; - if (callData->argc) + if (callData->argc()) searchString = callData->args[0].toQString(); - double position = callData->argc > 1 ? RuntimeHelpers::toNumber(callData->args[1]) : +qInf(); + double position = callData->argc() > 1 ? RuntimeHelpers::toNumber(callData->args[1]) : +qInf(); if (std::isnan(position)) position = +qInf(); else @@ -392,7 +392,7 @@ ReturnedValue StringPrototype::method_localeCompare(const BuiltinFunction *b, Ca if (v4->hasException) return QV4::Encode::undefined(); - if (callData->argc < 1) + if (callData->argc() < 1) callData->args[0] = Encode::undefined(); const QString that = callData->args[0].toQString(); @@ -410,9 +410,9 @@ ReturnedValue StringPrototype::method_match(const BuiltinFunction *b, CallData * if (v4->hasException) return Encode::undefined(); - if (!callData->argc) + if (!callData->argc()) callData->args[0] = Encode::undefined(); - callData->argc = 1; + callData->setArgc(1); if (!callData->args[0].as()) { // convert args[0] to a regexp @@ -668,8 +668,8 @@ ReturnedValue StringPrototype::method_slice(const BuiltinFunction *b, CallData * const double length = text.length(); - double start = callData->argc ? callData->args[0].toInteger() : 0; - double end = (callData->argc < 2 || callData->args[1].isUndefined()) + double start = callData->argc() ? callData->args[0].toInteger() : 0; + double end = (callData->argc() < 2 || callData->args[1].isUndefined()) ? length : callData->args[1].toInteger(); if (start < 0) @@ -780,14 +780,14 @@ ReturnedValue StringPrototype::method_startsWith(const BuiltinFunction *b, CallD return QV4::Encode::undefined(); QString searchString; - if (callData->argc) { + if (callData->argc()) { if (callData->args[0].as()) return v4->throwTypeError(); searchString = callData->args[0].toQString(); } int pos = 0; - if (callData->argc > 1) + if (callData->argc() > 1) pos = (int) callData->args[1].toInteger(); if (pos == 0) @@ -805,11 +805,11 @@ ReturnedValue StringPrototype::method_substr(const BuiltinFunction *b, CallData return QV4::Encode::undefined(); double start = 0; - if (callData->argc > 0) + if (callData->argc() > 0) start = callData->args[0].toInteger(); double length = +qInf(); - if (callData->argc > 1) + if (callData->argc() > 1) length = callData->args[1].toInteger(); double count = value.length(); @@ -835,10 +835,10 @@ ReturnedValue StringPrototype::method_substring(const BuiltinFunction *b, CallDa double start = 0; double end = length; - if (callData->argc > 0) + if (callData->argc() > 0) start = callData->args[0].toInteger(); - if (callData->argc > 1 && !callData->args[1].isUndefined()) + if (callData->argc() > 1 && !callData->args[1].isUndefined()) end = callData->args[1].toInteger(); if (std::isnan(start) || start < 0) @@ -896,9 +896,9 @@ ReturnedValue StringPrototype::method_toLocaleUpperCase(const BuiltinFunction *b ReturnedValue StringPrototype::method_fromCharCode(const BuiltinFunction *b, CallData *callData) { - QString str(callData->argc, Qt::Uninitialized); + QString str(callData->argc(), Qt::Uninitialized); QChar *ch = str.data(); - for (int i = 0; i < callData->argc; ++i) { + for (int i = 0, ei = callData->argc(); i < ei; ++i) { *ch = QChar(callData->args[i].toUInt16()); ++ch; } diff --git a/src/qml/jsruntime/qv4typedarray.cpp b/src/qml/jsruntime/qv4typedarray.cpp index 5bec5046fe..247e04f5f5 100644 --- a/src/qml/jsruntime/qv4typedarray.cpp +++ b/src/qml/jsruntime/qv4typedarray.cpp @@ -214,9 +214,9 @@ ReturnedValue TypedArrayCtor::construct(const Managed *m, CallData *callData) Scope scope(m->engine()); Scoped that(scope, static_cast(m)); - if (!callData->argc || !callData->args[0].isObject()) { + if (!callData->argc() || !callData->args[0].isObject()) { // ECMA 6 22.2.1.1 - double l = callData->argc ? callData->args[0].toNumber() : 0; + double l = callData->argc() ? callData->args[0].toNumber() : 0; if (scope.engine->hasException) return Encode::undefined(); uint len = (uint)l; @@ -276,14 +276,14 @@ ReturnedValue TypedArrayCtor::construct(const Managed *m, CallData *callData) if (!!buffer) { // ECMA 6 22.2.1.4 - double dbyteOffset = callData->argc > 1 ? callData->args[1].toInteger() : 0; + double dbyteOffset = callData->argc() > 1 ? callData->args[1].toInteger() : 0; uint byteOffset = (uint)dbyteOffset; uint elementSize = operations[that->d()->type].bytesPerElement; if (dbyteOffset < 0 || (byteOffset % elementSize) || dbyteOffset > buffer->byteLength()) return scope.engine->throwRangeError(QStringLiteral("new TypedArray: invalid byteOffset")); uint byteLength; - if (callData->argc < 3 || callData->args[2].isUndefined()) { + if (callData->argc() < 3 || callData->args[2].isUndefined()) { byteLength = buffer->byteLength() - byteOffset; if (buffer->byteLength() < byteOffset || byteLength % elementSize) return scope.engine->throwRangeError(QStringLiteral("new TypedArray: invalid length")); @@ -459,7 +459,7 @@ ReturnedValue TypedArrayPrototype::method_set(const BuiltinFunction *b, CallData if (!buffer) scope.engine->throwTypeError(); - double doffset = callData->argc >= 2 ? callData->args[1].toInteger() : 0; + double doffset = callData->argc() >= 2 ? callData->args[1].toInteger() : 0; if (scope.engine->hasException) RETURN_UNDEFINED(); @@ -551,12 +551,12 @@ ReturnedValue TypedArrayPrototype::method_subarray(const BuiltinFunction *builti return scope.engine->throwTypeError(); int len = a->length(); - double b = callData->argc > 0 ? callData->args[0].toInteger() : 0; + double b = callData->argc() > 0 ? callData->args[0].toInteger() : 0; if (b < 0) b = len + b; uint begin = (uint)qBound(0., b, (double)len); - double e = callData->argc < 2 || callData->args[1].isUndefined() ? len : callData->args[1].toInteger(); + double e = callData->argc() < 2 || callData->args[1].isUndefined() ? len : callData->args[1].toInteger(); if (e < 0) e = len + e; uint end = (uint)qBound(0., e, (double)len); diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 0531238024..6a897cbf08 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -516,7 +516,7 @@ QV4::ReturnedValue VME::exec(CallData *callData, QV4::Function *function) engine->jsStackTop = reinterpret_cast(callData) + function->compiledFunction->nRegisters + 1; // clear out remaining arguments and local registers - for (Value *v = callData->args + callData->argc; v < jsStackTop; ++v) + for (Value *v = callData->args + callData->argc(); v < jsStackTop; ++v) *v = Encode::undefined(); QV4::Value *stack = reinterpret_cast(callData); diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index dd0d2096ce..945629899c 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1492,7 +1492,7 @@ QV4::ReturnedValue QV4::QmlIncubatorObject::method_set_statusChanged(const Built { QV4::Scope scope(b); QV4::Scoped o(scope, callData->thisObject.as()); - if (!o || callData->argc < 1) + if (!o || callData->argc() < 1) THROW_TYPE_ERROR(); o->d()->statusChanged.set(scope.engine, callData->args[0]); diff --git a/src/qml/qml/qqmldelayedcallqueue.cpp b/src/qml/qml/qqmldelayedcallqueue.cpp index 1537657e0d..738f87247f 100644 --- a/src/qml/qml/qqmldelayedcallqueue.cpp +++ b/src/qml/qml/qqmldelayedcallqueue.cpp @@ -109,7 +109,7 @@ void QQmlDelayedCallQueue::init(QV4::ExecutionEngine* engine) QV4::ReturnedValue QQmlDelayedCallQueue::addUniquelyAndExecuteLater(const QV4::BuiltinFunction *b, QV4::CallData *callData) { QV4::Scope scope(b); - if (callData->argc == 0) + if (callData->argc() == 0) THROW_GENERIC_ERROR("Qt.callLater: no arguments given"); const QV4::FunctionObject *func = callData->args[0].as(); @@ -176,17 +176,16 @@ QV4::ReturnedValue QQmlDelayedCallQueue::addUniquelyAndExecuteLater(const QV4::B void QQmlDelayedCallQueue::storeAnyArguments(DelayedFunctionCall &dfc, const QV4::CallData *callData, int offset, QV4::ExecutionEngine *engine) { - const int length = callData->argc - offset; + const int length = callData->argc() - offset; if (length == 0) { dfc.m_args.clear(); return; } QV4::Scope scope(engine); QV4::ScopedArrayObject array(scope, engine->newArrayObject(length)); - int i = 0; - for (int j = offset; j < callData->argc; ++i, ++j) { + uint i = 0; + for (int j = offset, ej = callData->argc(); j < ej; ++i, ++j) array->putIndexed(i, callData->args[j]); - } dfc.m_args.set(engine, array); } diff --git a/src/qml/qml/qqmllistwrapper.cpp b/src/qml/qml/qqmllistwrapper.cpp index 8204400956..b4be83a156 100644 --- a/src/qml/qml/qqmllistwrapper.cpp +++ b/src/qml/qml/qqmllistwrapper.cpp @@ -184,7 +184,7 @@ ReturnedValue PropertyListPrototype::method_push(const BuiltinFunction *b, CallD THROW_GENERIC_ERROR("List doesn't define an Append function"); QV4::ScopedObject so(scope); - for (int i = 0; i < callData->argc; ++i) + for (int i = 0, ei = callData->argc(); i < ei; ++i) { so = callData->args[i].toObject(scope.engine); if (QV4::QObjectWrapper *wrapper = so->as()) diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index 862d9e1f14..f6aae67548 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -89,7 +89,7 @@ void QQmlDateExtension::registerExtension(QV4::ExecutionEngine *engine) ReturnedValue QQmlDateExtension::method_toLocaleString(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc > 2) + if (callData->argc() > 2) return QV4::DatePrototype::method_toLocaleString(b, callData); QV4::DateObject *date = callData->thisObject.as(); @@ -98,7 +98,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleString(const BuiltinFunction *b, QDateTime dt = date->toQDateTime(); - if (callData->argc == 0) { + if (callData->argc() == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; RETURN_RESULT(scope.engine->newString(locale.toString(dt))); @@ -111,7 +111,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleString(const BuiltinFunction *b, QLocale::FormatType enumFormat = QLocale::LongFormat; QString formattedDt; - if (callData->argc == 2) { + if (callData->argc() == 2) { if (String *s = callData->args[1].stringValue()) { QString format = s->toQString(); formattedDt = r->d()->locale->toString(dt, format); @@ -132,7 +132,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleString(const BuiltinFunction *b, ReturnedValue QQmlDateExtension::method_toLocaleTimeString(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc > 2) + if (callData->argc() > 2) return QV4::DatePrototype::method_toLocaleTimeString(b, callData); QV4::DateObject *date = callData->thisObject.as(); @@ -142,7 +142,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleTimeString(const BuiltinFunction QDateTime dt = date->toQDateTime(); QTime time = dt.time(); - if (callData->argc == 0) { + if (callData->argc() == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; RETURN_RESULT(scope.engine->newString(locale.toString(time))); @@ -155,7 +155,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleTimeString(const BuiltinFunction QLocale::FormatType enumFormat = QLocale::LongFormat; QString formattedTime; - if (callData->argc == 2) { + if (callData->argc() == 2) { if (String *s = callData->args[1].stringValue()) { QString format = s->toQString(); formattedTime = r->d()->locale->toString(time, format); @@ -176,7 +176,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleTimeString(const BuiltinFunction ReturnedValue QQmlDateExtension::method_toLocaleDateString(const BuiltinFunction *b, CallData *callData) { Scope scope(b); - if (callData->argc > 2) + if (callData->argc() > 2) return QV4::DatePrototype::method_toLocaleDateString(b, callData); QV4::DateObject *dateObj = callData->thisObject.as(); @@ -186,7 +186,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleDateString(const BuiltinFunction QDateTime dt = dateObj->toQDateTime(); QDate date = dt.date(); - if (callData->argc == 0) { + if (callData->argc() == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; RETURN_RESULT(scope.engine->newString(locale.toString(date))); @@ -199,7 +199,7 @@ ReturnedValue QQmlDateExtension::method_toLocaleDateString(const BuiltinFunction QLocale::FormatType enumFormat = QLocale::LongFormat; QString formattedDate; - if (callData->argc == 2) { + if (callData->argc() == 2) { if (String *s = callData->args[1].stringValue()) { QString format = s->toQString(); formattedDate = r->d()->locale->toString(date, format); @@ -221,7 +221,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleString(const BuiltinFunction * { QV4::Scope scope(b); QV4::ExecutionEngine * const engine = scope.engine; - if (callData->argc == 1) { + if (callData->argc() == 1) { if (String *s = callData->args[0].stringValue()) { QLocale locale; QString dateString = s->toQString(); @@ -230,7 +230,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleString(const BuiltinFunction * } } - if (callData->argc < 1 || callData->argc > 3 || !isLocaleObject(callData->args[0])) + if (callData->argc() < 1 || callData->argc() > 3 || !isLocaleObject(callData->args[0])) THROW_ERROR("Locale: Date.fromLocaleString(): Invalid arguments"); GET_LOCALE_DATA_RESOURCE(callData->args[0]); @@ -238,7 +238,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleString(const BuiltinFunction * QLocale::FormatType enumFormat = QLocale::LongFormat; QDateTime dt; QString dateString = callData->args[1].toQStringNoThrow(); - if (callData->argc == 3) { + if (callData->argc() == 3) { if (String *s = callData->args[2].stringValue()) { QString format = s->toQString(); dt = r->d()->locale->toDateTime(dateString, format); @@ -261,7 +261,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleTimeString(const BuiltinFuncti QV4::Scope scope(b); QV4::ExecutionEngine * const engine = scope.engine; - if (callData->argc == 1) { + if (callData->argc() == 1) { if (String *s = callData->args[0].stringValue()) { QLocale locale; QString timeString = s->toQString(); @@ -272,7 +272,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleTimeString(const BuiltinFuncti } } - if (callData->argc < 1 || callData->argc > 3 || !isLocaleObject(callData->args[0])) + if (callData->argc() < 1 || callData->argc() > 3 || !isLocaleObject(callData->args[0])) THROW_ERROR("Locale: Date.fromLocaleTimeString(): Invalid arguments"); GET_LOCALE_DATA_RESOURCE(callData->args[0]); @@ -280,7 +280,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleTimeString(const BuiltinFuncti QLocale::FormatType enumFormat = QLocale::LongFormat; QTime tm; QString dateString = callData->args[1].toQStringNoThrow(); - if (callData->argc == 3) { + if (callData->argc() == 3) { if (String *s = callData->args[2].stringValue()) { QString format = s->toQString(); tm = r->d()->locale->toTime(dateString, format); @@ -309,7 +309,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleDateString(const BuiltinFuncti QV4::Scope scope(b); QV4::ExecutionEngine * const engine = scope.engine; - if (callData->argc == 1) { + if (callData->argc() == 1) { if (String *s = callData->args[0].stringValue()) { QLocale locale; QString dateString = s->toQString(); @@ -318,7 +318,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleDateString(const BuiltinFuncti } } - if (callData->argc < 1 || callData->argc > 3 || !isLocaleObject(callData->args[0])) + if (callData->argc() < 1 || callData->argc() > 3 || !isLocaleObject(callData->args[0])) THROW_ERROR("Locale: Date.fromLocaleDateString(): Invalid arguments"); GET_LOCALE_DATA_RESOURCE(callData->args[0]); @@ -326,7 +326,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleDateString(const BuiltinFuncti QLocale::FormatType enumFormat = QLocale::LongFormat; QDate dt; QString dateString = callData->args[1].toQStringNoThrow(); - if (callData->argc == 3) { + if (callData->argc() == 3) { if (String *s = callData->args[2].stringValue()) { QString format = s->toQString(); dt = r->d()->locale->toDate(dateString, format); @@ -347,7 +347,7 @@ ReturnedValue QQmlDateExtension::method_fromLocaleDateString(const BuiltinFuncti ReturnedValue QQmlDateExtension::method_timeZoneUpdated(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 0) + if (callData->argc() != 0) THROW_ERROR("Locale: Date.timeZoneUpdated(): Invalid arguments"); QV4::DatePrototype::timezoneUpdated(); @@ -368,12 +368,12 @@ void QQmlNumberExtension::registerExtension(QV4::ExecutionEngine *engine) QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc > 3) + if (callData->argc() > 3) THROW_ERROR("Locale: Number.toLocaleString(): Invalid arguments"); double number = callData->thisObject.toNumber(); - if (callData->argc == 0) { + if (callData->argc() == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; RETURN_RESULT(scope.engine->newString(locale.toString(number))); @@ -385,7 +385,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(const BuiltinFunct GET_LOCALE_DATA_RESOURCE(callData->args[0]); quint16 format = 'f'; - if (callData->argc > 1) { + if (callData->argc() > 1) { if (!callData->args[1].isString()) THROW_ERROR("Locale: Number.toLocaleString(): Invalid arguments"); QString fs = callData->args[1].toQString(); @@ -393,7 +393,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(const BuiltinFunct format = fs.at(0).unicode(); } int prec = 2; - if (callData->argc > 2) { + if (callData->argc() > 2) { if (!callData->args[2].isNumber()) THROW_ERROR("Locale: Number.toLocaleString(): Invalid arguments"); prec = callData->args[2].toInt32(); @@ -405,12 +405,12 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(const BuiltinFunct ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc > 2) + if (callData->argc() > 2) THROW_ERROR("Locale: Number.toLocaleCurrencyString(): Invalid arguments"); double number = callData->thisObject.toNumber(); - if (callData->argc == 0) { + if (callData->argc() == 0) { // Use QLocale for standard toLocaleString() function QLocale locale; RETURN_RESULT(scope.engine->newString(locale.toString(number))); @@ -422,7 +422,7 @@ ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(const BuiltinFu GET_LOCALE_DATA_RESOURCE(callData->args[0]); QString symbol; - if (callData->argc > 1) { + if (callData->argc() > 1) { if (!callData->args[1].isString()) THROW_ERROR("Locale: Number.toLocaleString(): Invalid arguments"); symbol = callData->args[1].toQStringNoThrow(); @@ -434,13 +434,13 @@ ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(const BuiltinFu ReturnedValue QQmlNumberExtension::method_fromLocaleString(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1 || callData->argc > 2) + if (callData->argc() < 1 || callData->argc() > 2) THROW_ERROR("Locale: Number.fromLocaleString(): Invalid arguments"); int numberIdx = 0; QLocale locale; - if (callData->argc == 2) { + if (callData->argc() == 2) { if (!isLocaleObject(callData->args[0])) THROW_ERROR("Locale: Number.fromLocaleString(): Invalid arguments"); @@ -545,11 +545,11 @@ ReturnedValue QQmlLocaleData::method_currencySymbol(const BuiltinFunction *b, Ca if (!locale) return Encode::undefined(); - if (callData->argc > 1) + if (callData->argc() > 1) THROW_ERROR("Locale: currencySymbol(): Invalid arguments"); QLocale::CurrencySymbolFormat format = QLocale::CurrencySymbol; - if (callData->argc == 1) { + if (callData->argc() == 1) { quint32 intFormat = callData->args[0].toNumber(); format = QLocale::CurrencySymbolFormat(intFormat); } @@ -563,10 +563,10 @@ ReturnedValue QQmlLocaleData::method_ ##FUNC (const BuiltinFunction *b, CallData QLocale *locale = getThisLocale(scope, callData); \ if (!locale) \ return Encode::undefined(); \ - if (callData->argc > 1) \ + if (callData->argc() > 1) \ THROW_ERROR("Locale: " #FUNC "(): Invalid arguments"); \ QLocale::FormatType format = QLocale::LongFormat;\ - if (callData->argc == 1) { \ + if (callData->argc() == 1) { \ quint32 intFormat = callData->args[0].toUInt32(); \ format = QLocale::FormatType(intFormat); \ } \ @@ -584,14 +584,14 @@ ReturnedValue QQmlLocaleData::method_ ## VARIABLE (const BuiltinFunction *b, Cal QLocale *locale = getThisLocale(scope, callData); \ if (!locale) \ return Encode::undefined(); \ - if (callData->argc < 1 || callData->argc > 2) \ + if (callData->argc() < 1 || callData->argc() > 2) \ THROW_ERROR("Locale: " #VARIABLE "(): Invalid arguments"); \ QLocale::FormatType enumFormat = QLocale::LongFormat; \ int idx = callData->args[0].toInt32() + 1; \ if (idx < 1 || idx > 12) \ THROW_ERROR("Locale: Invalid month"); \ QString name; \ - if (callData->argc == 2) { \ + if (callData->argc() == 2) { \ if (callData->args[1].isNumber()) { \ quint32 intFormat = callData->args[1].toUInt32(); \ QLocale::FormatType format = QLocale::FormatType(intFormat); \ @@ -612,7 +612,7 @@ ReturnedValue QQmlLocaleData::method_ ## VARIABLE (const BuiltinFunction *b, Cal QLocale *locale = getThisLocale(scope, callData); \ if (!locale) \ return Encode::undefined(); \ - if (callData->argc < 1 || callData->argc > 2) \ + if (callData->argc() < 1 || callData->argc() > 2) \ THROW_ERROR("Locale: " #VARIABLE "(): Invalid arguments"); \ QLocale::FormatType enumFormat = QLocale::LongFormat; \ int idx = callData->args[0].toInt32(); \ @@ -620,7 +620,7 @@ ReturnedValue QQmlLocaleData::method_ ## VARIABLE (const BuiltinFunction *b, Cal THROW_ERROR("Locale: Invalid day"); \ if (idx == 0) idx = 7; \ QString name; \ - if (callData->argc == 2) { \ + if (callData->argc() == 2) { \ if (callData->args[1].isNumber()) { \ quint32 intFormat = callData->args[1].toUInt32(); \ QLocale::FormatType format = QLocale::FormatType(intFormat); \ @@ -839,7 +839,7 @@ void QQmlLocale::registerStringLocaleCompare(QV4::ExecutionEngine *engine) ReturnedValue QQmlLocale::method_localeCompare(const BuiltinFunction *b, CallData *callData) { - if (callData->argc != 1 || (!callData->args[0].isString() && !callData->args[0].as())) + if (callData->argc() != 1 || (!callData->args[0].isString() && !callData->args[0].as())) return QV4::StringPrototype::method_localeCompare(b, callData); if (!callData->thisObject.isString() && !callData->thisObject.as()) diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index 21f1fb30b0..554c4c5bc4 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1738,7 +1738,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_open(const BuiltinFunction *b, QV4: V4THROW_REFERENCE("Not an XMLHttpRequest object"); QQmlXMLHttpRequest *r = w->d()->request; - if (callData->argc < 2 || callData->argc > 5) + if (callData->argc() < 2 || callData->argc() > 5) THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Incorrect argument count"); // Argument 0 - Method @@ -1761,15 +1761,15 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_open(const BuiltinFunction *b, QV4: bool async = true; // Argument 2 - async (optional) - if (callData->argc > 2) { + if (callData->argc() > 2) { async = callData->args[2].booleanValue(); } // Argument 3/4 - user/pass (optional) QString username, password; - if (callData->argc > 3) + if (callData->argc() > 3) username = callData->args[3].toQStringNoThrow(); - if (callData->argc > 4) + if (callData->argc() > 4) password = callData->args[4].toQStringNoThrow(); // Clear the fragment (if any) @@ -1790,7 +1790,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_setRequestHeader(const BuiltinFunct V4THROW_REFERENCE("Not an XMLHttpRequest object"); QQmlXMLHttpRequest *r = w->d()->request; - if (callData->argc != 2) + if (callData->argc() != 2) THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Incorrect argument count"); if (r->readyState() != QQmlXMLHttpRequest::Opened || r->sendFlag()) @@ -1842,7 +1842,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_send(const BuiltinFunction *b, QV4: THROW_DOM(DOMEXCEPTION_INVALID_STATE_ERR, "Invalid state"); QByteArray data; - if (callData->argc > 0) { + if (callData->argc() > 0) { if (const ArrayBuffer *buffer = callData->args[0].as()) { data = buffer->asByteArray(); } else { @@ -1872,7 +1872,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_getResponseHeader(const BuiltinFunc V4THROW_REFERENCE("Not an XMLHttpRequest object"); QQmlXMLHttpRequest *r = w->d()->request; - if (callData->argc != 1) + if (callData->argc() != 1) THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Incorrect argument count"); if (r->readyState() != QQmlXMLHttpRequest::Loading && @@ -1891,7 +1891,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_getAllResponseHeaders(const Builtin V4THROW_REFERENCE("Not an XMLHttpRequest object"); QQmlXMLHttpRequest *r = w->d()->request; - if (callData->argc != 0) + if (callData->argc() != 0) THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Incorrect argument count"); if (r->readyState() != QQmlXMLHttpRequest::Loading && @@ -2029,7 +2029,7 @@ ReturnedValue QQmlXMLHttpRequestCtor::method_set_responseType(const BuiltinFunct V4THROW_REFERENCE("Not an XMLHttpRequest object"); QQmlXMLHttpRequest *r = w->d()->request; - if (callData->argc < 1) + if (callData->argc() < 1) THROW_DOM(DOMEXCEPTION_SYNTAX_ERR, "Incorrect argument count"); // Argument 0 - response type diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index dcbe2b2a5b..bfa155161d 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -230,7 +230,7 @@ Returns true if \c object is a valid reference to a Qt or QML object, otherwise */ ReturnedValue QtObject::method_isQtObject(const BuiltinFunction *, CallData *callData) { - if (callData->argc == 0) + if (callData->argc() == 0) RETURN_RESULT(QV4::Encode(false)); return QV4::Encode(callData->args[0].as() != 0); @@ -245,7 +245,7 @@ All components should be in the range 0-1 inclusive. ReturnedValue QtObject::method_rgba(const BuiltinFunction *builtin, CallData *callData) { QV4::Scope scope(builtin); - int argCount = callData->argc; + int argCount = callData->argc(); if (argCount < 3 || argCount > 4) THROW_GENERIC_ERROR("Qt.rgba(): Invalid arguments"); @@ -275,7 +275,7 @@ All components should be in the range 0-1 inclusive. ReturnedValue QtObject::method_hsla(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - int argCount = callData->argc; + int argCount = callData->argc(); if (argCount < 3 || argCount > 4) THROW_GENERIC_ERROR("Qt.hsla(): Invalid arguments"); @@ -307,7 +307,7 @@ All components should be in the range 0-1 inclusive. ReturnedValue QtObject::method_hsva(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - int argCount = callData->argc; + int argCount = callData->argc(); if (argCount < 3 || argCount > 4) THROW_GENERIC_ERROR("Qt.hsva(): Invalid arguments"); @@ -335,7 +335,7 @@ basic type. ReturnedValue QtObject::method_colorEqual(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 2) + if (callData->argc() != 2) THROW_GENERIC_ERROR("Qt.colorEqual(): Invalid arguments"); bool ok = false; @@ -374,7 +374,7 @@ The returned object has \c x, \c y, \c width and \c height attributes with the g ReturnedValue QtObject::method_rect(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 4) + if (callData->argc() != 4) THROW_GENERIC_ERROR("Qt.rect(): Invalid arguments"); double x = callData->args[0].toNumber(); @@ -392,7 +392,7 @@ Returns a Point with the specified \c x and \c y coordinates. ReturnedValue QtObject::method_point(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 2) + if (callData->argc() != 2) THROW_GENERIC_ERROR("Qt.point(): Invalid arguments"); double x = callData->args[0].toNumber(); @@ -408,7 +408,7 @@ Returns a Size with the specified \c width and \c height. ReturnedValue QtObject::method_size(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 2) + if (callData->argc() != 2) THROW_GENERIC_ERROR("Qt.size(): Invalid arguments"); double w = callData->args[0].toNumber(); @@ -428,7 +428,7 @@ Invalid keys will be ignored. ReturnedValue QtObject::method_font(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1 || !callData->args[0].isObject()) + if (callData->argc() != 1 || !callData->args[0].isObject()) THROW_GENERIC_ERROR("Qt.font(): Invalid arguments"); QV4::ExecutionEngine *v4 = scope.engine; @@ -448,7 +448,7 @@ Returns a Vector2D with the specified \c x and \c y. ReturnedValue QtObject::method_vector2d(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 2) + if (callData->argc() != 2) THROW_GENERIC_ERROR("Qt.vector2d(): Invalid arguments"); float xy[3]; // qvector2d uses float internally @@ -466,7 +466,7 @@ Returns a Vector3D with the specified \c x, \c y and \c z. ReturnedValue QtObject::method_vector3d(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 3) + if (callData->argc() != 3) THROW_GENERIC_ERROR("Qt.vector3d(): Invalid arguments"); float xyz[3]; // qvector3d uses float internally @@ -485,7 +485,7 @@ Returns a Vector4D with the specified \c x, \c y, \c z and \c w. ReturnedValue QtObject::method_vector4d(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 4) + if (callData->argc() != 4) THROW_GENERIC_ERROR("Qt.vector4d(): Invalid arguments"); float xyzw[4]; // qvector4d uses float internally @@ -505,7 +505,7 @@ Returns a Quaternion with the specified \c scalar, \c x, \c y, and \c z. ReturnedValue QtObject::method_quaternion(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 4) + if (callData->argc() != 4) THROW_GENERIC_ERROR("Qt.quaternion(): Invalid arguments"); qreal sxyz[4]; // qquaternion uses qreal internally @@ -531,11 +531,11 @@ ReturnedValue QtObject::method_matrix4x4(const BuiltinFunction *b, CallData *cal { QV4::Scope scope(b); - if (callData->argc == 0) { + if (callData->argc() == 0) { return scope.engine->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QMatrix4x4, 0, Q_NULLPTR)); } - if (callData->argc == 1 && callData->args[0].isObject()) { + if (callData->argc() == 1 && callData->args[0].isObject()) { bool ok = false; QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QMatrix4x4, QQmlV4Handle(callData->args[0]), scope.engine, &ok); if (!ok) @@ -543,7 +543,7 @@ ReturnedValue QtObject::method_matrix4x4(const BuiltinFunction *b, CallData *cal return scope.engine->fromVariant(v); } - if (callData->argc != 16) + if (callData->argc() != 16) THROW_GENERIC_ERROR("Qt.matrix4x4(): Invalid arguments"); qreal vals[16]; // qmatrix4x4 uses qreal internally @@ -585,7 +585,7 @@ If \c factor is not supplied, returns a color 50% lighter than \c baseColor (fac ReturnedValue QtObject::method_lighter(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1 && callData->argc != 2) + if (callData->argc() != 1 && callData->argc() != 2) THROW_GENERIC_ERROR("Qt.lighter(): Invalid arguments"); QVariant v = scope.engine->toVariant(callData->args[0], -1); @@ -600,7 +600,7 @@ ReturnedValue QtObject::method_lighter(const BuiltinFunction *b, CallData *callD } qreal factor = 1.5; - if (callData->argc == 2) + if (callData->argc() == 2) factor = callData->args[1].toNumber(); return scope.engine->fromVariant(QQml_colorProvider()->lighter(v, factor)); @@ -624,7 +624,7 @@ If \c factor is not supplied, returns a color 50% darker than \c baseColor (fact ReturnedValue QtObject::method_darker(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1 && callData->argc != 2) + if (callData->argc() != 1 && callData->argc() != 2) THROW_GENERIC_ERROR("Qt.darker(): Invalid arguments"); QVariant v = scope.engine->toVariant(callData->args[0], -1); @@ -639,7 +639,7 @@ ReturnedValue QtObject::method_darker(const BuiltinFunction *b, CallData *callDa } qreal factor = 2.0; - if (callData->argc == 2) + if (callData->argc() == 2) factor = callData->args[1].toNumber(); return scope.engine->fromVariant(QQml_colorProvider()->darker(v, factor)); @@ -672,7 +672,7 @@ ReturnedValue QtObject::method_darker(const BuiltinFunction *b, CallData *callDa ReturnedValue QtObject::method_tint(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 2) + if (callData->argc() != 2) THROW_GENERIC_ERROR("Qt.tint(): Invalid arguments"); // base color @@ -721,13 +721,13 @@ If \a format is not specified, \a date is formatted using ReturnedValue QtObject::method_formatDate(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1 || callData->argc > 2) + if (callData->argc() < 1 || callData->argc() > 2) THROW_GENERIC_ERROR("Qt.formatDate(): Invalid arguments"); Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate; QDate date = scope.engine->toVariant(callData->args[0], -1).toDateTime().date(); QString formattedDate; - if (callData->argc == 2) { + if (callData->argc() == 2) { QV4::ScopedString s(scope, callData->args[1]); if (s) { QString format = s->toQString(); @@ -764,7 +764,7 @@ If \a format is not specified, \a time is formatted using ReturnedValue QtObject::method_formatTime(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1 || callData->argc > 2) + if (callData->argc() < 1 || callData->argc() > 2) THROW_GENERIC_ERROR("Qt.formatTime(): Invalid arguments"); QVariant argVariant = scope.engine->toVariant(callData->args[0], -1); @@ -776,7 +776,7 @@ ReturnedValue QtObject::method_formatTime(const BuiltinFunction *b, CallData *ca Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate; QString formattedTime; - if (callData->argc == 2) { + if (callData->argc() == 2) { QV4::ScopedString s(scope, callData->args[1]); if (s) { QString format = s->toQString(); @@ -890,13 +890,13 @@ with the \a format values below to produce the following results: ReturnedValue QtObject::method_formatDateTime(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1 || callData->argc > 2) + if (callData->argc() < 1 || callData->argc() > 2) THROW_GENERIC_ERROR("Qt.formatDateTime(): Invalid arguments"); Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate; QDateTime dt = scope.engine->toVariant(callData->args[0], -1).toDateTime(); QString formattedDt; - if (callData->argc == 2) { + if (callData->argc() == 2) { QV4::ScopedString s(scope, callData->args[1]); if (s) { QString format = s->toQString(); @@ -929,7 +929,7 @@ ReturnedValue QtObject::method_formatDateTime(const BuiltinFunction *b, CallData ReturnedValue QtObject::method_openUrlExternally(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) { + if (callData->argc() != 1) { return QV4::Encode(false); } @@ -968,7 +968,7 @@ Returns a list of the font families available to the application. ReturnedValue QtObject::method_fontFamilies(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 0) + if (callData->argc() != 0) THROW_GENERIC_ERROR("Qt.fontFamilies(): Invalid arguments"); return scope.engine->fromVariant(QVariant(QQml_guiProvider()->fontFamilies())); @@ -981,7 +981,7 @@ Returns a hex string of the md5 hash of \c data. ReturnedValue QtObject::method_md5(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("Qt.md5(): Invalid arguments"); QByteArray data = callData->args[0].toQStringNoThrow().toUtf8(); @@ -996,7 +996,7 @@ Binary to ASCII - this function returns a base64 encoding of \c data. ReturnedValue QtObject::method_btoa(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("Qt.btoa(): Invalid arguments"); QByteArray data = callData->args[0].toQStringNoThrow().toUtf8(); @@ -1011,7 +1011,7 @@ ASCII to binary - this function decodes the base64 encoded \a data string and re ReturnedValue QtObject::method_atob(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("Qt.atob(): Invalid arguments"); QByteArray data = callData->args[0].toQStringNoThrow().toLatin1(); @@ -1048,7 +1048,7 @@ ReturnedValue QtObject::method_quit(const BuiltinFunction *b, CallData *) ReturnedValue QtObject::method_exit(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("Qt.exit(): Invalid arguments"); int retCode = callData->args[0].toNumber(); @@ -1084,7 +1084,7 @@ See \l {Dynamic QML Object Creation from JavaScript} for more information on usi ReturnedValue QtObject::method_createQmlObject(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 2 || callData->argc > 3) + if (callData->argc() < 2 || callData->argc() > 3) THROW_GENERIC_ERROR("Qt.createQmlObject(): Invalid arguments"); struct Error { @@ -1133,7 +1133,7 @@ ReturnedValue QtObject::method_createQmlObject(const BuiltinFunction *b, CallDat RETURN_RESULT(Encode::null()); QUrl url; - if (callData->argc > 2) + if (callData->argc() > 2) url = QUrl(callData->args[2].toQStringNoThrow()); else url = QUrl(QLatin1String("inline")); @@ -1237,7 +1237,7 @@ use \l{QtQml::Qt::createQmlObject()}{Qt.createQmlObject()}. ReturnedValue QtObject::method_createComponent(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1 || callData->argc > 3) + if (callData->argc() < 1 || callData->argc() > 3) THROW_GENERIC_ERROR("Qt.createComponent(): Invalid arguments"); QV8Engine *v8engine = scope.engine->v8Engine; @@ -1257,8 +1257,8 @@ ReturnedValue QtObject::method_createComponent(const BuiltinFunction *b, CallDat QObject *parentArg = 0; int consumedCount = 1; - if (callData->argc > 1) { - ScopedValue lastArg(scope, callData->args[callData->argc-1]); + if (callData->argc() > 1) { + ScopedValue lastArg(scope, callData->args[callData->argc()-1]); // The second argument could be the mode enum if (callData->args[1].isInteger()) { @@ -1269,11 +1269,11 @@ ReturnedValue QtObject::method_createComponent(const BuiltinFunction *b, CallDat consumedCount += 1; } else { // The second argument could be the parent only if there are exactly two args - if ((callData->argc != 2) || !(lastArg->isObject() || lastArg->isNull())) + if ((callData->argc() != 2) || !(lastArg->isObject() || lastArg->isNull())) THROW_GENERIC_ERROR("Qt.createComponent(): Invalid arguments"); } - if (consumedCount < callData->argc) { + if (consumedCount < callData->argc()) { if (lastArg->isObject()) { Scoped qobjectWrapper(scope, lastArg); if (qobjectWrapper) @@ -1321,12 +1321,12 @@ ReturnedValue QtObject::method_locale(const BuiltinFunction *b, CallData *callDa { QV4::Scope scope(b); QString code; - if (callData->argc > 1) + if (callData->argc() > 1) THROW_GENERIC_ERROR("locale() requires 0 or 1 argument"); - if (callData->argc == 1 && !callData->args[0].isString()) + if (callData->argc() == 1 && !callData->args[0].isString()) THROW_TYPE_ERROR_WITH_MESSAGE("locale(): argument (locale code) must be a string"); - if (callData->argc == 1) + if (callData->argc() == 1) code = callData->args[0].toQStringNoThrow(); return QQmlLocale::locale(scope.engine, code); @@ -1394,7 +1394,7 @@ DEFINE_OBJECT_VTABLE(QQmlBindingFunction); ReturnedValue QtObject::method_binding(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("binding() requires 1 argument"); const QV4::FunctionObject *f = callData->args[0].as(); if (!f) @@ -1518,7 +1518,7 @@ static ReturnedValue writeToConsole(const BuiltinFunction *b, CallData *callData QV4::ExecutionEngine *v4 = scope.engine; int start = 0; - if (callData->argc > 0) { + if (callData->argc() > 0) { if (const QObjectWrapper* wrapper = callData->args[0].as()) { if (QQmlLoggingCategory* category = qobject_cast(wrapper->object())) { if (category->category()) @@ -1531,7 +1531,7 @@ static ReturnedValue writeToConsole(const BuiltinFunction *b, CallData *callData } - for (int i = start; i < callData->argc; ++i) { + for (int i = start, ei = callData->argc(); i < ei; ++i) { if (i != start) result.append(QLatin1Char(' ')); @@ -1642,7 +1642,7 @@ ReturnedValue ConsoleObject::method_profileEnd(const BuiltinFunction *b, CallDat ReturnedValue ConsoleObject::method_time(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("console.time(): Invalid arguments"); QV8Engine *v8engine = scope.engine->v8Engine; @@ -1655,7 +1655,7 @@ ReturnedValue ConsoleObject::method_time(const BuiltinFunction *b, CallData *cal ReturnedValue ConsoleObject::method_timeEnd(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("console.timeEnd(): Invalid arguments"); QV8Engine *v8engine = scope.engine->v8Engine; @@ -1673,7 +1673,7 @@ ReturnedValue ConsoleObject::method_count(const BuiltinFunction *b, CallData *ca { // first argument: name to print. Ignore any additional arguments QString name; - if (callData->argc > 0) + if (callData->argc() > 0) name = callData->args[0].toQStringNoThrow(); Scope scope(b); @@ -1697,7 +1697,7 @@ ReturnedValue ConsoleObject::method_count(const BuiltinFunction *b, CallData *ca ReturnedValue ConsoleObject::method_trace(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 0) + if (callData->argc() != 0) THROW_GENERIC_ERROR("console.trace(): Invalid arguments"); QV4::ExecutionEngine *v4 = scope.engine; @@ -1720,14 +1720,14 @@ ReturnedValue ConsoleObject::method_warn(const BuiltinFunction *b, CallData *cal ReturnedValue ConsoleObject::method_assert(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc == 0) + if (callData->argc() == 0) THROW_GENERIC_ERROR("console.assert(): Missing argument"); QV4::ExecutionEngine *v4 = scope.engine; if (!callData->args[0].toBoolean()) { QString message; - for (int i = 1; i < callData->argc; ++i) { + for (int i = 1, ei = callData->argc(); i < ei; ++i) { if (i != 1) message.append(QLatin1Char(' ')); @@ -1748,7 +1748,7 @@ ReturnedValue ConsoleObject::method_assert(const BuiltinFunction *b, CallData *c ReturnedValue ConsoleObject::method_exception(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc == 0) + if (callData->argc() == 0) THROW_GENERIC_ERROR("console.exception(): Missing argument"); return writeToConsole(b, callData, Error, true); @@ -1810,28 +1810,28 @@ void QV4::GlobalExtensions::init(Object *globalObject, QJSEngine::Extensions ext ReturnedValue GlobalExtensions::method_qsTranslate(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 2) + if (callData->argc() < 2) THROW_GENERIC_ERROR("qsTranslate() requires at least two arguments"); if (!callData->args[0].isString()) THROW_GENERIC_ERROR("qsTranslate(): first argument (context) must be a string"); if (!callData->args[1].isString()) THROW_GENERIC_ERROR("qsTranslate(): second argument (sourceText) must be a string"); - if ((callData->argc > 2) && !callData->args[2].isString()) + if ((callData->argc() > 2) && !callData->args[2].isString()) THROW_GENERIC_ERROR("qsTranslate(): third argument (disambiguation) must be a string"); QString context = callData->args[0].toQStringNoThrow(); QString text = callData->args[1].toQStringNoThrow(); QString comment; - if (callData->argc > 2) comment = callData->args[2].toQStringNoThrow(); + if (callData->argc() > 2) comment = callData->args[2].toQStringNoThrow(); int i = 3; - if (callData->argc > i && callData->args[i].isString()) { + if (callData->argc() > i && callData->args[i].isString()) { qWarning("qsTranslate(): specifying the encoding as fourth argument is deprecated"); ++i; } int n = -1; - if (callData->argc > i) + if (callData->argc() > i) n = callData->args[i].toInt32(); QString result = QCoreApplication::translate(context.toUtf8().constData(), @@ -1867,7 +1867,7 @@ ReturnedValue GlobalExtensions::method_qsTranslate(const BuiltinFunction *b, Cal ReturnedValue GlobalExtensions::method_qsTranslateNoOp(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 2) + if (callData->argc() < 2) return QV4::Encode::undefined(); else return callData->args[1].asReturnedValue(); @@ -1893,13 +1893,13 @@ ReturnedValue GlobalExtensions::method_qsTranslateNoOp(const BuiltinFunction *b, ReturnedValue GlobalExtensions::method_qsTr(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) THROW_GENERIC_ERROR("qsTr() requires at least one argument"); if (!callData->args[0].isString()) THROW_GENERIC_ERROR("qsTr(): first argument (sourceText) must be a string"); - if ((callData->argc > 1) && !callData->args[1].isString()) + if ((callData->argc() > 1) && !callData->args[1].isString()) THROW_GENERIC_ERROR("qsTr(): second argument (disambiguation) must be a string"); - if ((callData->argc > 2) && !callData->args[2].isNumber()) + if ((callData->argc() > 2) && !callData->args[2].isNumber()) THROW_GENERIC_ERROR("qsTr(): third argument (n) must be a number"); QString context; @@ -1931,10 +1931,10 @@ ReturnedValue GlobalExtensions::method_qsTr(const BuiltinFunction *b, CallData * QString text = callData->args[0].toQStringNoThrow(); QString comment; - if (callData->argc > 1) + if (callData->argc() > 1) comment = callData->args[1].toQStringNoThrow(); int n = -1; - if (callData->argc > 2) + if (callData->argc() > 2) n = callData->args[2].toInt32(); QString result = QCoreApplication::translate(context.toUtf8().constData(), text.toUtf8().constData(), @@ -1967,7 +1967,7 @@ ReturnedValue GlobalExtensions::method_qsTr(const BuiltinFunction *b, CallData * */ ReturnedValue GlobalExtensions::method_qsTrNoOp(const BuiltinFunction *, CallData *callData) { - if (callData->argc < 1) + if (callData->argc() < 1) return QV4::Encode::undefined(); else return callData->args[0].asReturnedValue(); @@ -2006,15 +2006,15 @@ ReturnedValue GlobalExtensions::method_qsTrNoOp(const BuiltinFunction *, CallDat ReturnedValue GlobalExtensions::method_qsTrId(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc < 1) + if (callData->argc() < 1) THROW_GENERIC_ERROR("qsTrId() requires at least one argument"); if (!callData->args[0].isString()) THROW_TYPE_ERROR_WITH_MESSAGE("qsTrId(): first argument (id) must be a string"); - if (callData->argc > 1 && !callData->args[1].isNumber()) + if (callData->argc() > 1 && !callData->args[1].isNumber()) THROW_TYPE_ERROR_WITH_MESSAGE("qsTrId(): second argument (n) must be a number"); int n = -1; - if (callData->argc > 1) + if (callData->argc() > 1) n = callData->args[1].toInt32(); return Encode(scope.engine->newString(qtTrId(callData->args[0].toQStringNoThrow().toUtf8().constData(), n))); @@ -2038,7 +2038,7 @@ ReturnedValue GlobalExtensions::method_qsTrId(const BuiltinFunction *b, CallData */ ReturnedValue GlobalExtensions::method_qsTrIdNoOp(const BuiltinFunction *, CallData *callData) { - if (callData->argc < 1) + if (callData->argc() < 1) return QV4::Encode::undefined(); else return callData->args[0].asReturnedValue(); @@ -2058,7 +2058,7 @@ ReturnedValue GlobalExtensions::method_gc(const BuiltinFunction *b, CallData *) ReturnedValue GlobalExtensions::method_string_arg(const BuiltinFunction *b, CallData *callData) { QV4::Scope scope(b); - if (callData->argc != 1) + if (callData->argc() != 1) THROW_GENERIC_ERROR("String.arg(): Invalid arguments"); QString value = callData->thisObject.toQString(); diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h index 3bd3517968..a430fba0e6 100644 --- a/src/qml/qml/v8/qv8engine_p.h +++ b/src/qml/qml/v8/qv8engine_p.h @@ -116,8 +116,8 @@ namespace QV4 { class QQmlV4Function { public: - int length() const { return callData->argc; } - QV4::ReturnedValue operator[](int idx) const { return (idx < callData->argc ? callData->args[idx].asReturnedValue() : QV4::Encode::undefined()); } + int length() const { return callData->argc(); } + QV4::ReturnedValue operator[](int idx) const { return (idx < callData->argc() ? callData->args[idx].asReturnedValue() : QV4::Encode::undefined()); } void setReturnValue(QV4::ReturnedValue rv) { *retVal = rv; } QV4::ExecutionEngine *v4engine() const { return e; } private: diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index e2b63d8935..b8e0f25482 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -1830,7 +1830,7 @@ QV4::ReturnedValue QQmlDelegateModelItem::set_groups(const QV4::BuiltinFunction if (!o) return scope.engine->throwTypeError(QStringLiteral("Not a valid VisualData object")); - if (!callData->argc) + if (!callData->argc()) THROW_TYPE_ERROR(); if (!o->d()->item->metaType->model) diff --git a/src/qml/types/qquickworkerscript.cpp b/src/qml/types/qquickworkerscript.cpp index 6df15c2513..c0f49c3885 100644 --- a/src/qml/types/qquickworkerscript.cpp +++ b/src/qml/types/qquickworkerscript.cpp @@ -299,7 +299,7 @@ QV4::ReturnedValue QQuickWorkerScriptEnginePrivate::method_sendMessage(const QV4 QV4::Scope scope(b); WorkerEngine *engine = (WorkerEngine*)scope.engine->v8Engine; - int id = callData->argc > 1 ? callData->args[1].toInt32() : 0; + int id = callData->argc() > 1 ? callData->args[1].toInt32() : 0; QV4::ScopedValue v(scope, callData->argument(2)); QByteArray data = QV4::Serialize::serialize(v, scope.engine); diff --git a/src/qml/util/qqmladaptormodel.cpp b/src/qml/util/qqmladaptormodel.cpp index 99adbed897..d5b38f6d3e 100644 --- a/src/qml/util/qqmladaptormodel.cpp +++ b/src/qml/util/qqmladaptormodel.cpp @@ -371,7 +371,7 @@ QV4::ReturnedValue QQmlDMCachedModelData::set_property(const QV4::BuiltinFunctio QV4::Scoped o(scope, callData->thisObject.as()); if (!o) return scope.engine->throwTypeError(QStringLiteral("Not a valid VisualData object")); - if (!callData->argc) + if (!callData->argc()) return scope.engine->throwTypeError(); uint propertyId = static_cast(b)->d()->index; @@ -602,7 +602,7 @@ public: QQmlDelegateModelItemObject *o = callData->thisObject.as(); if (!o) return v4->throwTypeError(QStringLiteral("Not a valid VisualData object")); - if (!callData->argc) + if (!callData->argc()) return v4->throwTypeError(); static_cast(o->d()->item)->setModelData(v4->toVariant(callData->args[0], QVariant::Invalid)); diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index bd66d844ff..a4e701f59c 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -1083,7 +1083,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_rotate(const QV4::BuiltinF QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 1) + if (callData->argc() >= 1) r->d()->context->rotate(callData->args[0].toNumber()); RETURN_RESULT(callData->thisObject); } @@ -1112,7 +1112,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_scale(const QV4::BuiltinFu CHECK_CONTEXT(r) - if (callData->argc >= 2) + if (callData->argc() >= 2) r->d()->context->scale(callData->args[0].toNumber(), callData->args[1].toNumber()); RETURN_RESULT(callData->thisObject); @@ -1159,7 +1159,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_setTransform(const QV4::Bu CHECK_CONTEXT(r) - if (callData->argc >= 6) + if (callData->argc() >= 6) r->d()->context->setTransform( callData->args[0].toNumber() , callData->args[1].toNumber() , callData->args[2].toNumber() @@ -1188,7 +1188,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_transform(const QV4::Built QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 6) + if (callData->argc() >= 6) r->d()->context->transform( callData->args[0].toNumber() , callData->args[1].toNumber() , callData->args[2].toNumber() @@ -1215,7 +1215,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_translate(const QV4::Built QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 2) + if (callData->argc() >= 2) r->d()->context->translate(callData->args[0].toNumber(), callData->args[1].toNumber()); RETURN_RESULT(callData->thisObject); @@ -1255,7 +1255,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_shear(const QV4::BuiltinFu QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 2) + if (callData->argc() >= 2) r->d()->context->shear(callData->args[0].toNumber(), callData->args[1].toNumber()); RETURN_RESULT(callData->thisObject); @@ -1285,7 +1285,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_globalAlpha(const QV4::BuiltinF QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT_SETTER(r) - double globalAlpha = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + double globalAlpha = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (!qt_is_finite(globalAlpha)) @@ -1339,7 +1339,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_globalCompositeOperation(const QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT_SETTER(r) - if (!callData->argc) + if (!callData->argc()) THROW_TYPE_ERROR(); QString mode = callData->args[0].toQString(); @@ -1567,7 +1567,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createLinearGradient(const QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 4) { + if (callData->argc() >= 4) { qreal x0 = callData->args[0].toNumber(); qreal y0 = callData->args[1].toNumber(); qreal x1 = callData->args[2].toNumber(); @@ -1611,7 +1611,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createRadialGradient(const QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 6) { + if (callData->argc() >= 6) { qreal x0 = callData->args[0].toNumber(); qreal y0 = callData->args[1].toNumber(); qreal r0 = callData->args[2].toNumber(); @@ -1663,7 +1663,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createConicalGradient(cons QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 3) { + if (callData->argc() >= 3) { qreal x = callData->args[0].toNumber(); qreal y = callData->args[1].toNumber(); qreal angle = qRadiansToDegrees(callData->args[2].toNumber()); @@ -1736,7 +1736,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createPattern(const QV4::B QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 2) { + if (callData->argc() >= 2) { QV4::Scoped pattern(scope, scope.engine->memoryManager->allocObject()); QColor color = scope.engine->toVariant(callData->args[0], qMetaTypeId()).value(); @@ -1882,7 +1882,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_lineJoin(const QV4::BuiltinFunc QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - if (!callData->argc) + if (!callData->argc()) THROW_TYPE_ERROR(); QString lineJoin = callData->args[0].toQString(); @@ -1922,7 +1922,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_lineWidth(const QV4::BuiltinFun QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - qreal w = callData->argc ? callData->args[0].toNumber() : -1; + qreal w = callData->argc() ? callData->args[0].toNumber() : -1; if (w > 0 && qt_is_finite(w) && w != r->d()->context->state.lineWidth) { r->d()->context->state.lineWidth = w; @@ -1951,7 +1951,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_miterLimit(const QV4::BuiltinFu QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - qreal ml = callData->argc ? callData->args[0].toNumber() : -1; + qreal ml = callData->argc() ? callData->args[0].toNumber() : -1; if (ml > 0 && qt_is_finite(ml) && ml != r->d()->context->state.miterLimit) { r->d()->context->state.miterLimit = ml; @@ -1980,7 +1980,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_shadowBlur(const QV4::BuiltinFu QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - qreal blur = callData->argc ? callData->args[0].toNumber() : -1; + qreal blur = callData->argc() ? callData->args[0].toNumber() : -1; if (blur > 0 && qt_is_finite(blur) && blur != r->d()->context->state.shadowBlur) { r->d()->context->state.shadowBlur = blur; @@ -2009,7 +2009,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_shadowColor(const QV4::BuiltinF CHECK_CONTEXT_SETTER(r) QColor color; - if (callData->argc) + if (callData->argc()) color = qt_color_from_string(callData->args[0]); if (color.isValid() && color != r->d()->context->state.shadowColor) { @@ -2041,7 +2041,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_shadowOffsetX(const QV4::Builti QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - qreal offsetX = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + qreal offsetX = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (qt_is_finite(offsetX) && offsetX != r->d()->context->state.shadowOffsetX) { r->d()->context->state.shadowOffsetX = offsetX; r->d()->context->buffer()->setShadowOffsetX(offsetX); @@ -2069,7 +2069,7 @@ QV4::ReturnedValue QQuickJSContext2D::method_set_shadowOffsetY(const QV4::Builti QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT_SETTER(r) - qreal offsetY = callData->argc ? callData->args[0].toNumber() : qt_qnan(); + qreal offsetY = callData->argc() ? callData->args[0].toNumber() : qt_qnan(); if (qt_is_finite(offsetY) && offsetY != r->d()->context->state.shadowOffsetY) { r->d()->context->state.shadowOffsetY = offsetY; r->d()->context->buffer()->setShadowOffsetY(offsetY); @@ -2120,7 +2120,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_clearRect(const QV4::Built CHECK_CONTEXT(r) - if (callData->argc >= 4) + if (callData->argc() >= 4) r->d()->context->clearRect(callData->args[0].toNumber(), callData->args[1].toNumber(), callData->args[2].toNumber(), @@ -2141,7 +2141,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_fillRect(const QV4::Builti QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 4) + if (callData->argc() >= 4) r->d()->context->fillRect(callData->args[0].toNumber(), callData->args[1].toNumber(), callData->args[2].toNumber(), callData->args[3].toNumber()); RETURN_RESULT(callData->thisObject); @@ -2163,7 +2163,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_strokeRect(const QV4::Buil QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 4) + if (callData->argc() >= 4) r->d()->context->strokeRect(callData->args[0].toNumber(), callData->args[1].toNumber(), callData->args[2].toNumber(), callData->args[3].toNumber()); RETURN_RESULT(callData->thisObject); @@ -2197,10 +2197,10 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_arc(const QV4::BuiltinFunc QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 5) { + if (callData->argc() >= 5) { bool antiClockwise = false; - if (callData->argc == 6) + if (callData->argc() == 6) antiClockwise = callData->args[5].toBoolean(); qreal radius = callData->args[2].toNumber(); @@ -2249,7 +2249,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_arcTo(const QV4::BuiltinFu QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 5) { + if (callData->argc() >= 5) { qreal radius = callData->args[4].toNumber(); if (qt_is_finite(radius) && radius < 0) @@ -2308,7 +2308,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_bezierCurveTo(const QV4::B QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 6) { + if (callData->argc() >= 6) { qreal cp1x = callData->args[0].toNumber(); qreal cp1y = callData->args[1].toNumber(); qreal cp2x = callData->args[2].toNumber(); @@ -2405,7 +2405,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_lineTo(const QV4::BuiltinF QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 2) { + if (callData->argc() >= 2) { qreal x = callData->args[0].toNumber(); qreal y = callData->args[1].toNumber(); @@ -2429,7 +2429,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_moveTo(const QV4::BuiltinF QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 2) { + if (callData->argc() >= 2) { qreal x = callData->args[0].toNumber(); qreal y = callData->args[1].toNumber(); @@ -2454,7 +2454,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_quadraticCurveTo(const QV4 QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 4) { + if (callData->argc() >= 4) { qreal cpx = callData->args[0].toNumber(); qreal cpy = callData->args[1].toNumber(); qreal x = callData->args[2].toNumber(); @@ -2480,7 +2480,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_rect(const QV4::BuiltinFun QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 4) + if (callData->argc() >= 4) r->d()->context->rect(callData->args[0].toNumber(), callData->args[1].toNumber(), callData->args[2].toNumber(), callData->args[3].toNumber()); RETURN_RESULT(callData->thisObject); @@ -2498,7 +2498,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_roundedRect(const QV4::Bui QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 6) + if (callData->argc() >= 6) r->d()->context->roundedRect(callData->args[0].toNumber() , callData->args[1].toNumber() , callData->args[2].toNumber() @@ -2523,7 +2523,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_ellipse(const QV4::Builtin QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 4) + if (callData->argc() >= 4) r->d()->context->ellipse(callData->args[0].toNumber(), callData->args[1].toNumber(), callData->args[2].toNumber(), callData->args[3].toNumber()); RETURN_RESULT(callData->thisObject); @@ -2542,7 +2542,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_text(const QV4::BuiltinFun QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 3) { + if (callData->argc() >= 3) { qreal x = callData->args[1].toNumber(); qreal y = callData->args[2].toNumber(); @@ -2588,7 +2588,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_isPointInPath(const QV4::B CHECK_CONTEXT(r) bool pointInPath = false; - if (callData->argc >= 2) + if (callData->argc() >= 2) pointInPath = r->d()->context->isPointInPath(callData->args[0].toNumber(), callData->args[1].toNumber()); RETURN_RESULT(QV4::Primitive::fromBoolean(pointInPath).asReturnedValue()); } @@ -2807,7 +2807,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_fillText(const QV4::Builti QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 3) { + if (callData->argc() >= 3) { qreal x = callData->args[1].toNumber(); qreal y = callData->args[2].toNumber(); if (!qt_is_finite(x) || !qt_is_finite(y)) @@ -2832,7 +2832,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_strokeText(const QV4::Buil QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 3) + if (callData->argc() >= 3) r->d()->context->drawText(callData->args[0].toQStringNoThrow(), callData->args[1].toNumber(), callData->args[2].toNumber(), false); RETURN_RESULT(callData->thisObject); @@ -2850,7 +2850,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_measureText(const QV4::Bui QV4::Scoped r(scope, callData->thisObject); CHECK_CONTEXT(r) - if (callData->argc >= 1) { + if (callData->argc() >= 1) { QFontMetrics fm(r->d()->context->state.font); uint width = fm.width(callData->args[0].toQStringNoThrow()); QV4::ScopedObject tm(scope, scope.engine->newObject()); @@ -2928,7 +2928,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_drawImage(const QV4::Built qreal sx, sy, sw, sh, dx, dy, dw, dh; - if (!callData->argc) + if (!callData->argc()) RETURN_UNDEFINED(); //FIXME:This function should be moved to QQuickContext2D::drawImage(...) @@ -2980,7 +2980,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_drawImage(const QV4::Built if (pixmap.isNull() || !pixmap->isValid()) RETURN_UNDEFINED(); - if (callData->argc >= 9) { + if (callData->argc() >= 9) { sx = callData->args[1].toNumber(); sy = callData->args[2].toNumber(); sw = callData->args[3].toNumber(); @@ -2989,7 +2989,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_drawImage(const QV4::Built dy = callData->args[6].toNumber(); dw = callData->args[7].toNumber(); dh = callData->args[8].toNumber(); - } else if (callData->argc >= 5) { + } else if (callData->argc() >= 5) { sx = 0; sy = 0; sw = pixmap->width(); @@ -2998,7 +2998,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_drawImage(const QV4::Built dy = callData->args[2].toNumber(); dw = callData->args[3].toNumber(); dh = callData->args[4].toNumber(); - } else if (callData->argc >= 3) { + } else if (callData->argc() >= 3) { dx = callData->args[1].toNumber(); dy = callData->args[2].toNumber(); sx = 0; @@ -3222,7 +3222,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createImageData(const QV4: QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc == 1) { + if (callData->argc() == 1) { QV4::ScopedValue arg0(scope, callData->args[0]); QV4::Scoped imgData(scope, arg0); if (!!imgData) { @@ -3236,7 +3236,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_createImageData(const QV4: QImage image = r->d()->context->createPixmap(QUrl(arg0->toQStringNoThrow()))->image(); RETURN_RESULT(qt_create_image_data(image.width(), image.height(), scope.engine, image)); } - } else if (callData->argc == 2) { + } else if (callData->argc() == 2) { qreal w = callData->args[0].toNumber(); qreal h = callData->args[1].toNumber(); @@ -3261,7 +3261,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_getImageData(const QV4::Bu QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc >= 4) { + if (callData->argc() >= 4) { qreal x = callData->args[0].toNumber(); qreal y = callData->args[1].toNumber(); qreal w = callData->args[2].toNumber(); @@ -3287,7 +3287,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_putImageData(const QV4::Bu QV4::Scope scope(b); QV4::Scoped r(scope, callData->thisObject.as()); CHECK_CONTEXT(r) - if (callData->argc < 7) + if (callData->argc() < 7) RETURN_UNDEFINED(); QV4::ScopedValue arg0(scope, callData->args[0]); @@ -3310,7 +3310,7 @@ QV4::ReturnedValue QQuickJSContext2DPrototype::method_putImageData(const QV4::Bu w = pixelArray->d()->image->width(); h = pixelArray->d()->image->height(); - if (callData->argc == 7) { + if (callData->argc() == 7) { dirtyX = callData->args[3].toNumber(); dirtyY = callData->args[4].toNumber(); dirtyWidth = callData->args[5].toNumber(); @@ -3391,7 +3391,7 @@ QV4::ReturnedValue QQuickContext2DStyle::gradient_proto_addColorStop(const QV4:: if (!style) THROW_GENERIC_ERROR("Not a CanvasGradient object"); - if (callData->argc == 2) { + if (callData->argc() == 2) { if (!style->d()->brush->gradient()) THROW_GENERIC_ERROR("Not a valid CanvasGradient object, can't get the gradient information"); -- cgit v1.2.3