diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-11-01 20:56:47 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-04 20:18:18 +0100 |
commit | 878b11e0a94e892c0377bca01b49706c150926ed (patch) | |
tree | 1b4a10f016d208a8514b394087ac18e419fcdc17 /src/qml/qml | |
parent | 486948817b26da2c62802bb93a0f671715c609d4 (diff) |
Let markObjects() operate directly on HeapObjects
This decouples things a bit better and helps moving
over to directly store heapobject pointers in other
objects.
Change-Id: I798f922e018b0a3ca6f8768e4a810187f34d82f6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlcomponent.cpp | 13 | ||||
-rw-r--r-- | src/qml/qml/qqmlcontextwrapper.cpp | 14 | ||||
-rw-r--r-- | src/qml/qml/qqmlcontextwrapper_p.h | 4 | ||||
-rw-r--r-- | src/qml/qml/qqmlxmlhttprequest.cpp | 8 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 6 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions_p.h | 2 |
6 files changed, 23 insertions, 24 deletions
diff --git a/src/qml/qml/qqmlcomponent.cpp b/src/qml/qml/qqmlcomponent.cpp index bcb49b30ab..980fc99b92 100644 --- a/src/qml/qml/qqmlcomponent.cpp +++ b/src/qml/qml/qqmlcomponent.cpp @@ -1090,7 +1090,7 @@ struct QmlIncubatorObject : public QV4::Object static QV4::ReturnedValue method_forceCompletion(QV4::CallContext *ctx); static void destroy(Managed *that); - static void markObjects(Managed *that, QV4::ExecutionEngine *e); + static void markObjects(QV4::HeapObject *that, QV4::ExecutionEngine *e); void statusChanged(QQmlIncubator::Status); void setInitialState(QObject *); @@ -1503,13 +1503,12 @@ void QmlIncubatorObject::destroy(Managed *that) static_cast<QmlIncubatorObject *>(that)->d()->~Data(); } -void QmlIncubatorObject::markObjects(QV4::Managed *that, QV4::ExecutionEngine *e) +void QmlIncubatorObject::markObjects(QV4::HeapObject *that, QV4::ExecutionEngine *e) { - QmlIncubatorObject *o = static_cast<QmlIncubatorObject *>(that); - Q_ASSERT(that->as<QmlIncubatorObject>()); - o->d()->valuemap.mark(e); - o->d()->qmlGlobal.mark(e); - o->d()->statusChanged.mark(e); + QmlIncubatorObject::Data *o = static_cast<QmlIncubatorObject::Data *>(that); + o->valuemap.mark(e); + o->qmlGlobal.mark(e); + o->statusChanged.mark(e); Object::markObjects(that, e); } diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp index f18f6fa5ea..df62f285e3 100644 --- a/src/qml/qml/qqmlcontextwrapper.cpp +++ b/src/qml/qml/qqmlcontextwrapper.cpp @@ -347,11 +347,11 @@ void QmlContextWrapper::destroy(Managed *that) static_cast<QmlContextWrapper *>(that)->d()->~Data(); } -void QmlContextWrapper::markObjects(Managed *m, ExecutionEngine *engine) +void QmlContextWrapper::markObjects(HeapObject *m, ExecutionEngine *engine) { - QmlContextWrapper *This = static_cast<QmlContextWrapper*>(m); - if (This->d()->idObjectsWrapper) - This->d()->idObjectsWrapper->mark(engine); + QmlContextWrapper::Data *This = static_cast<QmlContextWrapper::Data *>(m); + if (This->idObjectsWrapper) + This->idObjectsWrapper->mark(engine); Object::markObjects(m, engine); } @@ -465,10 +465,10 @@ ReturnedValue QQmlIdObjectsArray::getIndexed(Managed *m, uint index, bool *hasPr return QObjectWrapper::wrap(This->engine(), context->idValues[index].data()); } -void QQmlIdObjectsArray::markObjects(Managed *that, ExecutionEngine *engine) +void QQmlIdObjectsArray::markObjects(HeapObject *that, ExecutionEngine *engine) { - QQmlIdObjectsArray *This = static_cast<QQmlIdObjectsArray*>(that); - This->d()->contextWrapper->mark(engine); + QQmlIdObjectsArray::Data *This = static_cast<QQmlIdObjectsArray::Data *>(that); + This->contextWrapper->mark(engine); Object::markObjects(that, engine); } diff --git a/src/qml/qml/qqmlcontextwrapper_p.h b/src/qml/qml/qqmlcontextwrapper_p.h index cae6800f48..ae9e795a5c 100644 --- a/src/qml/qml/qqmlcontextwrapper_p.h +++ b/src/qml/qml/qqmlcontextwrapper_p.h @@ -93,7 +93,7 @@ struct Q_QML_EXPORT QmlContextWrapper : Object static ReturnedValue get(Managed *m, String *name, bool *hasProperty); static void put(Managed *m, String *name, const ValueRef value); static void destroy(Managed *that); - static void markObjects(Managed *m, ExecutionEngine *engine); + static void markObjects(HeapObject *m, ExecutionEngine *engine); static void registerQmlDependencies(ExecutionEngine *context, const CompiledData::Function *compiledFunction); @@ -111,7 +111,7 @@ struct QQmlIdObjectsArray : public Object V4_OBJECT(Object) static ReturnedValue getIndexed(Managed *m, uint index, bool *hasProperty); - static void markObjects(Managed *that, ExecutionEngine *engine); + static void markObjects(HeapObject *that, ExecutionEngine *engine); }; diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index e5c9ee7549..2acd40ae44 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1639,10 +1639,10 @@ struct QQmlXMLHttpRequestCtor : public FunctionObject Object *proto; }; V4_OBJECT(FunctionObject) - static void markObjects(Managed *that, ExecutionEngine *e) { - QQmlXMLHttpRequestCtor *c = static_cast<QQmlXMLHttpRequestCtor *>(that); - if (c->d()->proto) - c->d()->proto->mark(e); + static void markObjects(HeapObject *that, ExecutionEngine *e) { + QQmlXMLHttpRequestCtor::Data *c = static_cast<QQmlXMLHttpRequestCtor::Data *>(that); + if (c->proto) + c->proto->mark(e); FunctionObject::markObjects(that, e); } static ReturnedValue construct(Managed *that, QV4::CallData *) diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index b2cf29b67d..3a593d1c5b 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -1187,10 +1187,10 @@ ReturnedValue QQmlBindingFunction::call(Managed *that, CallData *callData) return This->d()->originalFunction->call(callData); } -void QQmlBindingFunction::markObjects(Managed *that, ExecutionEngine *e) +void QQmlBindingFunction::markObjects(HeapObject *that, ExecutionEngine *e) { - QQmlBindingFunction *This = static_cast<QQmlBindingFunction*>(that); - This->d()->originalFunction->mark(e); + QQmlBindingFunction::Data *This = static_cast<QQmlBindingFunction::Data *>(that); + This->originalFunction->mark(e); QV4::FunctionObject::markObjects(that, e); } diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h index f7728aa120..7fe7d2b914 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h +++ b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h @@ -155,7 +155,7 @@ struct QQmlBindingFunction : public QV4::FunctionObject static ReturnedValue call(Managed *that, CallData *callData); - static void markObjects(Managed *that, ExecutionEngine *e); + static void markObjects(HeapObject *that, ExecutionEngine *e); static void destroy(Managed *that) { static_cast<QQmlBindingFunction *>(that)->d()->~Data(); } |