From 878b11e0a94e892c0377bca01b49706c150926ed Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sat, 1 Nov 2014 20:56:47 +0100 Subject: 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 --- src/qml/qml/qqmlcomponent.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/qml/qml/qqmlcomponent.cpp') 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(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(that); - Q_ASSERT(that->as()); - o->d()->valuemap.mark(e); - o->d()->qmlGlobal.mark(e); - o->d()->statusChanged.mark(e); + QmlIncubatorObject::Data *o = static_cast(that); + o->valuemap.mark(e); + o->qmlGlobal.mark(e); + o->statusChanged.mark(e); Object::markObjects(that, e); } -- cgit v1.2.3