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/qqmlcomponent.cpp | |
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/qqmlcomponent.cpp')
-rw-r--r-- | src/qml/qml/qqmlcomponent.cpp | 13 |
1 files changed, 6 insertions, 7 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); } |