aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2015-01-15 21:28:01 +0100
committerLars Knoll <lars.knoll@digia.com>2015-01-23 12:30:35 +0100
commit3dbf4e9a6979802fff55e2f5e6aa54a14280e128 (patch)
tree2bd9090f4bcf01e9c9e43c0d52fcbf80295ca6c0 /src/qml/jsruntime
parent3f3652e43fc001df728ef00403b18d3202e2726a (diff)
Cleanups
Remove duplicated methods. Remove some mostly unused methods, and simplify some others. Change-Id: I605b249e54417bb32c3dfc8e22f2c8b6b684a1e1 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4arrayobject.cpp8
-rw-r--r--src/qml/jsruntime/qv4context.cpp12
-rw-r--r--src/qml/jsruntime/qv4engine.cpp4
-rw-r--r--src/qml/jsruntime/qv4functionobject.cpp6
-rw-r--r--src/qml/jsruntime/qv4include.cpp2
-rw-r--r--src/qml/jsruntime/qv4jsonobject.cpp8
-rw-r--r--src/qml/jsruntime/qv4managed_p.h9
-rw-r--r--src/qml/jsruntime/qv4objectproto.cpp2
-rw-r--r--src/qml/jsruntime/qv4qobjectwrapper.cpp14
-rw-r--r--src/qml/jsruntime/qv4regexpobject.cpp6
-rw-r--r--src/qml/jsruntime/qv4runtime.cpp2
-rw-r--r--src/qml/jsruntime/qv4scopedvalue_p.h44
-rw-r--r--src/qml/jsruntime/qv4script.cpp4
-rw-r--r--src/qml/jsruntime/qv4serialize.cpp4
-rw-r--r--src/qml/jsruntime/qv4stringobject.cpp2
15 files changed, 46 insertions, 81 deletions
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<const QStringList *>(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<typename T>
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<T>(v));
#ifndef QT_NO_DEBUG
@@ -290,15 +283,6 @@ struct Scoped
++scope.size;
#endif
}
- template<typename X>
- Scoped(const Scope &scope, X *t, _Cast)
- {
- ptr = scope.engine->jsStackTop++;
- setPointer(managed_cast<T>(t));
-#ifndef QT_NO_DEBUG
- ++scope.size;
-#endif
- }
Scoped(const Scope &scope, const ReturnedValue &v)
{
@@ -319,10 +303,7 @@ struct Scoped
Scoped<T> &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<T>(v));
return *this;
}
@@ -373,18 +354,14 @@ struct Scoped
}
T *getPointer() {
- return static_cast<T *>(ptr->managed());
+ return ptr->cast<T>();
}
typename T::Data **getRef() {
return reinterpret_cast<typename T::Data **>(&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<T> &TypedValue<T>::operator =(const Scoped<T> &v)
return *this;
}
-//template<typename T>
-//inline TypedValue<T> &TypedValue<T>::operator =(const ManagedRef<T> &v)
-//{
-// val = v.asReturnedValue();
-// return *this;
-//}
-
template<typename T>
inline TypedValue<T> &TypedValue<T>::operator=(const TypedValue<T> &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)