diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-09-05 17:31:41 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-09-29 06:12:49 +0200 |
commit | 703c808a5649169dd6b9605af273374cd62951d1 (patch) | |
tree | 7248cc72bfa632a51c814d6622f0b12a7f2bd443 /src/declarative/qml/v8/qv8qobjectwrapper.cpp | |
parent | 600e56ad053362dd5d4150f5dec6b93c2fee575b (diff) |
Asynchronous component instantiation
This introduces two main:
* the QML compiler executes in a separate thread
* item instantiation can be interrupted and resumed to
allow it to be split across multiple frames.
Task-number: QTBUG-21151
Change-Id: I9631c62bb77da3a2e0c37f0da3719533fdce4fef
Reviewed-on: http://codereview.qt-project.org/5676
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/qml/v8/qv8qobjectwrapper.cpp')
-rw-r--r-- | src/declarative/qml/v8/qv8qobjectwrapper.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/declarative/qml/v8/qv8qobjectwrapper.cpp b/src/declarative/qml/v8/qv8qobjectwrapper.cpp index 2649976513..9481bb54fe 100644 --- a/src/declarative/qml/v8/qv8qobjectwrapper.cpp +++ b/src/declarative/qml/v8/qv8qobjectwrapper.cpp @@ -861,6 +861,7 @@ static void WeakQObjectInstanceCallback(v8::Persistent<v8::Value> handle, void * v8::Local<v8::Object> QDeclarativePropertyCache::newQObject(QObject *object, QV8Engine *engine) { Q_ASSERT(object); + Q_ASSERT(this->engine); Q_ASSERT(QDeclarativeData::get(object, false)); Q_ASSERT(QDeclarativeData::get(object, false)->propertyCache == this); @@ -938,6 +939,8 @@ v8::Local<v8::Object> QDeclarativePropertyCache::newQObject(QObject *object, QV8 ft->InstanceTemplate()->SetHasExternalResource(true); constructor = qPersistentNew<v8::Function>(ft->GetFunction()); } + + QDeclarativeCleanup::addToEngine(this->engine); } v8::Local<v8::Object> result = constructor->NewInstance(); |