From 3dbf4e9a6979802fff55e2f5e6aa54a14280e128 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 15 Jan 2015 21:28:01 +0100 Subject: Cleanups Remove duplicated methods. Remove some mostly unused methods, and simplify some others. Change-Id: I605b249e54417bb32c3dfc8e22f2c8b6b684a1e1 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4arrayobject.cpp | 8 +++--- src/qml/jsruntime/qv4context.cpp | 12 ++++----- src/qml/jsruntime/qv4engine.cpp | 4 +-- src/qml/jsruntime/qv4functionobject.cpp | 6 ++--- src/qml/jsruntime/qv4include.cpp | 2 +- src/qml/jsruntime/qv4jsonobject.cpp | 8 +++--- src/qml/jsruntime/qv4managed_p.h | 9 ++----- src/qml/jsruntime/qv4objectproto.cpp | 2 +- src/qml/jsruntime/qv4qobjectwrapper.cpp | 14 +++++------ src/qml/jsruntime/qv4regexpobject.cpp | 6 ++--- src/qml/jsruntime/qv4runtime.cpp | 2 +- src/qml/jsruntime/qv4scopedvalue_p.h | 44 ++++++--------------------------- src/qml/jsruntime/qv4script.cpp | 4 +-- src/qml/jsruntime/qv4serialize.cpp | 4 +-- src/qml/jsruntime/qv4stringobject.cpp | 2 +- 15 files changed, 46 insertions(+), 81 deletions(-) (limited to 'src/qml/jsruntime') diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp index e4403f5a57..0361d0e628 100644 --- a/src/qml/jsruntime/qv4arrayobject.cpp +++ b/src/qml/jsruntime/qv4arrayobject.cpp @@ -257,7 +257,7 @@ ReturnedValue ArrayPrototype::method_pop(CallContext *ctx) instance->setArrayLength(len - 1); else instance->put(ctx->d()->engine->id_length, ScopedValue(scope, Primitive::fromDouble(len - 1))); - return result.asReturnedValue(); + return result->asReturnedValue(); } ReturnedValue ArrayPrototype::method_push(CallContext *ctx) @@ -389,7 +389,7 @@ ReturnedValue ArrayPrototype::method_shift(CallContext *ctx) instance->setArrayLengthUnchecked(len - 1); else instance->put(ctx->d()->engine->id_length, ScopedValue(scope, Primitive::fromDouble(len - 1))); - return result.asReturnedValue(); + return result->asReturnedValue(); } ReturnedValue ArrayPrototype::method_slice(CallContext *ctx) @@ -905,7 +905,7 @@ ReturnedValue ArrayPrototype::method_reduce(CallContext *ctx) } ++k; } - return acc.asReturnedValue(); + return acc->asReturnedValue(); } ReturnedValue ArrayPrototype::method_reduceRight(CallContext *ctx) @@ -959,6 +959,6 @@ ReturnedValue ArrayPrototype::method_reduceRight(CallContext *ctx) } --k; } - return acc.asReturnedValue(); + return acc->asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index 3db957c9bb..27d32bbcd3 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -358,7 +358,7 @@ ReturnedValue ExecutionContext::getProperty(String *name) bool hasProperty = false; v = w->get(name, &hasProperty); if (hasProperty) { - return v.asReturnedValue(); + return v->asReturnedValue(); } continue; } @@ -386,7 +386,7 @@ ReturnedValue ExecutionContext::getProperty(String *name) bool hasProperty = false; v = activation->get(name, &hasProperty); if (hasProperty) - return v.asReturnedValue(); + return v->asReturnedValue(); } if (f->function() && f->function()->isNamedExpression() && name->equals(ScopedString(scope, f->function()->name()))) @@ -398,7 +398,7 @@ ReturnedValue ExecutionContext::getProperty(String *name) bool hasProperty = false; v = global->get(name, &hasProperty); if (hasProperty) - return v.asReturnedValue(); + return v->asReturnedValue(); } } ScopedValue n(scope, name); @@ -426,7 +426,7 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Heap::Object ** v = w->get(name, &hasProperty); if (hasProperty) { *base = w->d(); - return v.asReturnedValue(); + return v->asReturnedValue(); } continue; } @@ -456,7 +456,7 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Heap::Object ** if (hasProperty) { if (ctx->d()->type == Heap::ExecutionContext::Type_QmlContext) *base = activation->d(); - return v.asReturnedValue(); + return v->asReturnedValue(); } } if (f->function() && f->function()->isNamedExpression() @@ -469,7 +469,7 @@ ReturnedValue ExecutionContext::getPropertyAndBase(String *name, Heap::Object ** bool hasProperty = false; v = global->get(name, &hasProperty); if (hasProperty) - return v.asReturnedValue(); + return v->asReturnedValue(); } } ScopedValue n(scope, name); diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 9dba5c2275..49d77863df 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -1400,7 +1400,7 @@ QV4::ReturnedValue QV4::ExecutionEngine::fromVariant(const QVariant &variant) QV4::Scope scope(this); QV4::ScopedValue retn(scope, QV4::SequencePrototype::fromVariant(this, variant, &succeeded)); if (succeeded) - return retn.asReturnedValue(); + return retn->asReturnedValue(); return QV4::Encode(newArrayObject(*reinterpret_cast(ptr))); } case QMetaType::QVariantList: @@ -1457,7 +1457,7 @@ QV4::ReturnedValue QV4::ExecutionEngine::fromVariant(const QVariant &variant) bool succeeded = false; QV4::ScopedValue retn(scope, QV4::SequencePrototype::fromVariant(this, variant, &succeeded)); if (succeeded) - return retn.asReturnedValue(); + return retn->asReturnedValue(); if (const QMetaObject *vtmo = QQmlValueTypeFactory::metaObjectForMetaType(type)) return QV4::QQmlValueTypeWrapper::create(this, variant, vtmo, type); diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index f49d53f6f6..1ead3b747f 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -419,7 +419,7 @@ ReturnedValue ScriptFunction::construct(Managed *that, CallData *callData) return Encode::undefined(); if (result->isObject()) - return result.asReturnedValue(); + return result->asReturnedValue(); return obj.asReturnedValue(); } @@ -442,7 +442,7 @@ ReturnedValue ScriptFunction::call(Managed *that, CallData *callData) if (f->function()->compiledFunction->hasQmlDependencies()) QmlContextWrapper::registerQmlDependencies(ctx->d()->engine, f->function()->compiledFunction); - return result.asReturnedValue(); + return result->asReturnedValue(); } DEFINE_OBJECT_VTABLE(SimpleScriptFunction); @@ -546,7 +546,7 @@ ReturnedValue SimpleScriptFunction::call(Managed *that, CallData *callData) if (f->function()->compiledFunction->hasQmlDependencies()) QmlContextWrapper::registerQmlDependencies(v4, f->function()->compiledFunction); - return result.asReturnedValue(); + return result->asReturnedValue(); } Heap::Object *SimpleScriptFunction::protoForConstructor() diff --git a/src/qml/jsruntime/qv4include.cpp b/src/qml/jsruntime/qv4include.cpp index 57aea74313..814e6fbfe8 100644 --- a/src/qml/jsruntime/qv4include.cpp +++ b/src/qml/jsruntime/qv4include.cpp @@ -235,7 +235,7 @@ QV4::ReturnedValue QV4Include::method_include(QV4::CallContext *ctx) callback(callbackFunction, result); } - return result.asReturnedValue(); + return result->asReturnedValue(); } QT_END_NAMESPACE diff --git a/src/qml/jsruntime/qv4jsonobject.cpp b/src/qml/jsruntime/qv4jsonobject.cpp index 1423c4ac6a..724a2e0d7b 100644 --- a/src/qml/jsruntime/qv4jsonobject.cpp +++ b/src/qml/jsruntime/qv4jsonobject.cpp @@ -213,7 +213,7 @@ ReturnedValue JsonParser::parse(QJsonParseError *error) END; error->offset = 0; error->error = QJsonParseError::NoError; - return v.asReturnedValue(); + return v->asReturnedValue(); } /* @@ -726,7 +726,7 @@ QString Stringify::Str(const QString &key, const Value &v) value = replacerFunction->call(callData); } - o = value.asReturnedValue(); + o = value->asReturnedValue(); if (o) { if (NumberObject *n = o->asNumberObject()) value = n->value(); @@ -748,7 +748,7 @@ QString Stringify::Str(const QString &key, const Value &v) return std::isfinite(d) ? value->toQString() : QStringLiteral("null"); } - o = value.asReturnedValue(); + o = value->asReturnedValue(); if (o) { if (!o->asFunctionObject()) { if (o->asArrayObject()) { @@ -904,7 +904,7 @@ ReturnedValue JsonObject::method_parse(CallContext *ctx) return ctx->engine()->throwSyntaxError(QStringLiteral("JSON.parse: Parse error")); } - return result.asReturnedValue(); + return result->asReturnedValue(); } ReturnedValue JsonObject::method_stringify(CallContext *ctx) diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index 8780243bae..812e1be207 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -136,11 +136,8 @@ struct Q_QML_PRIVATE_EXPORT Managed : Value }; private: void *operator new(size_t); - Managed(); - Managed(const Managed &other); - void operator = (const Managed &other); - void *operator new(size_t size, MemoryManager *mm); - void *operator new(size_t, Managed *m) { return m; } + Managed() Q_DECL_EQ_DELETE; + Q_DISABLE_COPY(Managed) public: @@ -222,8 +219,6 @@ public: static bool isEqualTo(Managed *m, Managed *other); - ReturnedValue asReturnedValue() { return Value::fromManaged(this).asReturnedValue(); } - bool inUse() const { return d()->inUse(); } bool markBit() const { return d()->isMarked(); } diff --git a/src/qml/jsruntime/qv4objectproto.cpp b/src/qml/jsruntime/qv4objectproto.cpp index 64d5f5641c..289421e867 100644 --- a/src/qml/jsruntime/qv4objectproto.cpp +++ b/src/qml/jsruntime/qv4objectproto.cpp @@ -416,7 +416,7 @@ ReturnedValue ObjectPrototype::method_valueOf(CallContext *ctx) ScopedValue v(scope, ctx->d()->callData->thisObject.toObject(scope.engine)); if (ctx->d()->engine->hasException) return Encode::undefined(); - return v.asReturnedValue(); + return v->asReturnedValue(); } ReturnedValue ObjectPrototype::method_hasOwnProperty(CallContext *ctx) diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index 6190dd0bad..c65b7b6d55 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -217,7 +217,7 @@ static QV4::ReturnedValue LoadProperty(QV4::ExecutionEngine *v4, QObject *object bool succeeded = false; QV4::ScopedValue retn(scope, QV4::SequencePrototype::newSequence(v4, property.propType, object, property.coreIndex, &succeeded)); if (succeeded) - return retn.asReturnedValue(); + return retn->asReturnedValue(); } if (property.propType == QMetaType::UnknownType) { @@ -277,7 +277,7 @@ ReturnedValue QObjectWrapper::getQmlProperty(QQmlContextData *qmlContext, String QV4::ScopedValue method(scope, QV4::QObjectMethod::create(global, d()->object, index)); if (hasProperty) *hasProperty = true; - return method.asReturnedValue(); + return method->asReturnedValue(); } QQmlPropertyData local; @@ -376,7 +376,7 @@ ReturnedValue QObjectWrapper::getProperty(QObject *object, ExecutionContext *ctx } } - return rv.asReturnedValue(); + return rv->asReturnedValue(); } if (captureRequired && ep && !property->isConstant()) @@ -594,7 +594,7 @@ ReturnedValue QObjectWrapper::wrap(ExecutionEngine *engine, QObject *object) QV4::ScopedValue rv(scope, create(engine, object)); ddata->jsWrapper.set(scope.engine, rv); ddata->jsEngineId = engine->m_engineId; - return rv.asReturnedValue(); + return rv->asReturnedValue(); } else { // If this object is tainted, we have to check to see if it is in our @@ -609,7 +609,7 @@ ReturnedValue QObjectWrapper::wrap(ExecutionEngine *engine, QObject *object) QV4::ScopedValue result(scope, create(engine, object)); ddata->jsWrapper.set(scope.engine, result); ddata->jsEngineId = engine->m_engineId; - return result.asReturnedValue(); + return result->asReturnedValue(); } if (!alternateWrapper) { @@ -1725,7 +1725,7 @@ QV4::ReturnedValue CallArgument::toValue(QV4::ExecutionEngine *engine) if (QObject *object = qobjectWrapper->object()) QQmlData::get(object, true)->setImplicitDestructible(); } - return rv.asReturnedValue(); + return rv->asReturnedValue(); } else { return QV4::Encode::undefined(); } @@ -1878,7 +1878,7 @@ ReturnedValue QObjectMethod::callInternal(CallData *callData) void *args[] = { 0, &funcptr }; object.metacall(QMetaObject::InvokeMetaMethod, method.coreIndex, args); - return rv.asReturnedValue(); + return rv->asReturnedValue(); } if (!method.isOverload()) { diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index b9d22794bb..0736056838 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -385,7 +385,7 @@ ReturnedValue RegExpPrototype::method_exec(CallContext *ctx) } array->setArrayLengthUnchecked(len); array->memberData()->data[Index_ArrayIndex] = Primitive::fromInt32(result); - array->memberData()->data[Index_ArrayInput] = arg.asReturnedValue(); + array->memberData()->data[Index_ArrayInput] = arg; RegExpCtor::Data *dd = regExpCtor->d(); dd->lastMatch = array; @@ -441,7 +441,7 @@ ReturnedValue RegExpPrototype::method_get_lastMatch_n(CallContext *ctx) ScopedValue result(scope, lastMatch ? lastMatch->getIndexed(index) : Encode::undefined()); if (result->isUndefined()) return ctx->d()->engine->newString()->asReturnedValue(); - return result.asReturnedValue(); + return result->asReturnedValue(); } ReturnedValue RegExpPrototype::method_get_lastParen(CallContext *ctx) @@ -451,7 +451,7 @@ ReturnedValue RegExpPrototype::method_get_lastParen(CallContext *ctx) ScopedValue result(scope, lastMatch ? lastMatch->getIndexed(lastMatch->getLength() - 1) : Encode::undefined()); if (result->isUndefined()) return ctx->d()->engine->newString()->asReturnedValue(); - return result.asReturnedValue(); + return result->asReturnedValue(); } ReturnedValue RegExpPrototype::method_get_input(CallContext *ctx) diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 73ae88f80c..4bbbb6f401 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -325,7 +325,7 @@ QV4::ReturnedValue Runtime::instanceof(ExecutionEngine *engine, const Value &lef if (!v) return Encode(false); - ScopedObject o(scope, QV4::Value::fromReturnedValue(f->protoProperty()).asObject()); + ScopedObject o(scope, f->protoProperty()); if (!o) return engine->throwTypeError(); diff --git a/src/qml/jsruntime/qv4scopedvalue_p.h b/src/qml/jsruntime/qv4scopedvalue_p.h index 81b81f6c5c..6fc04cc289 100644 --- a/src/qml/jsruntime/qv4scopedvalue_p.h +++ b/src/qml/jsruntime/qv4scopedvalue_p.h @@ -169,7 +169,7 @@ struct ScopedValue } ScopedValue &operator=(Managed *m) { - ptr->val = m->asReturnedValue(); + *ptr = *m; return *this; } @@ -194,8 +194,6 @@ struct ScopedValue operator Value *() { return ptr; } operator const Value &() const { return *ptr; } - ReturnedValue asReturnedValue() const { return ptr->val; } - Value *ptr; }; @@ -203,13 +201,11 @@ template struct Scoped { enum _Convert { Convert }; - enum _Cast { Cast }; inline void setPointer(Managed *p) { -#if QT_POINTER_SIZE == 8 ptr->m = p ? p->m : 0; -#else - *ptr = QV4::Value::fromManaged(p); +#if QT_POINTER_SIZE == 4 + ptr->tag = QV4::Value::Managed_Type; #endif } @@ -237,10 +233,7 @@ struct Scoped Scoped(const Scope &scope, Heap::Base *o) { Value v; - v.m = o; -#if QT_POINTER_SIZE == 4 - v.tag = QV4::Value::Managed_Type; -#endif + v = o; ptr = scope.engine->jsStackTop++; setPointer(value_cast(v)); #ifndef QT_NO_DEBUG @@ -290,15 +283,6 @@ struct Scoped ++scope.size; #endif } - template - Scoped(const Scope &scope, X *t, _Cast) - { - ptr = scope.engine->jsStackTop++; - setPointer(managed_cast(t)); -#ifndef QT_NO_DEBUG - ++scope.size; -#endif - } Scoped(const Scope &scope, const ReturnedValue &v) { @@ -319,10 +303,7 @@ struct Scoped Scoped &operator=(Heap::Base *o) { Value v; - v.m = o; -#if QT_POINTER_SIZE == 4 - v.tag = QV4::Value::Managed_Type; -#endif + v = o; setPointer(value_cast(v)); return *this; } @@ -373,18 +354,14 @@ struct Scoped } T *getPointer() { - return static_cast(ptr->managed()); + return ptr->cast(); } typename T::Data **getRef() { return reinterpret_cast(&ptr->m); } ReturnedValue asReturnedValue() const { -#if QT_POINTER_SIZE == 8 - return ptr->val ? ptr->val : Primitive::undefinedValue().asReturnedValue(); -#else - return ptr->val; -#endif + return ptr->m ? ptr->val : Encode::undefined(); } Value *ptr; @@ -444,13 +421,6 @@ inline TypedValue &TypedValue::operator =(const Scoped &v) return *this; } -//template -//inline TypedValue &TypedValue::operator =(const ManagedRef &v) -//{ -// val = v.asReturnedValue(); -// return *this; -//} - template inline TypedValue &TypedValue::operator=(const TypedValue &t) { diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index a38e87e550..06dc6e8f05 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -138,7 +138,7 @@ ReturnedValue QmlBindingWrapper::call(Managed *that, CallData *) ScopedValue result(scope, This->function()->code(engine, This->function()->codeData)); engine->popContext(); - return result.asReturnedValue(); + return result->asReturnedValue(); } void QmlBindingWrapper::markObjects(Heap::Base *m, ExecutionEngine *e) @@ -397,5 +397,5 @@ QV4::ReturnedValue Script::evaluate(ExecutionEngine *engine, const QString &scr scope.engine->catchException(); return Encode::undefined(); } - return result.asReturnedValue(); + return result->asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4serialize.cpp b/src/qml/jsruntime/qv4serialize.cpp index 765fef3332..286a2c82c9 100644 --- a/src/qml/jsruntime/qv4serialize.cpp +++ b/src/qml/jsruntime/qv4serialize.cpp @@ -325,7 +325,7 @@ ReturnedValue Serialize::deserialize(const char *&data, ExecutionEngine *engine) for (quint32 ii = 0; ii < size; ++ii) { name = deserialize(data, engine); value = deserialize(data, engine); - n = name.asReturnedValue(); + n = name->asReturnedValue(); o->put(n, value); } return o.asReturnedValue(); @@ -360,7 +360,7 @@ ReturnedValue Serialize::deserialize(const char *&data, ExecutionEngine *engine) agent->release(); agent->setEngine(engine); - return rv.asReturnedValue(); + return rv->asReturnedValue(); } case WorkerSequence: { diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index dad3cf0ebc..55bc3c58db 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -182,7 +182,7 @@ ReturnedValue StringCtor::call(Managed *m, CallData *callData) value = callData->args[0].toString(v4); else value = v4->newString(); - return value.asReturnedValue(); + return value->asReturnedValue(); } void StringPrototype::init(ExecutionEngine *engine, Object *ctor) -- cgit v1.2.3