aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8qobjectwrapper.cpp
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2012-05-08 10:42:28 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-09 00:56:16 +0200
commit68b899266ca209d43026376a6cf9d7bbdc3483b8 (patch)
tree0a0d2068c5dcafc2d86883405025db33e00b2373 /src/qml/qml/v8/qv8qobjectwrapper.cpp
parent08bafae3a1c148353e3f37f9966b9ecc28ba3a5f (diff)
Better checking top level root object creation status
Add QQmlContextData::isRootObjectInCreation flag, only set it to true in Init qml instruction, once a root ojbect created, set it to false and set QQmlData::rootObjectInCreation to true. Change-Id: Iba7b348ab664a472280d8d7283e93787b3dd0a56 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8qobjectwrapper.cpp')
-rw-r--r--src/qml/qml/v8/qv8qobjectwrapper.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/qml/v8/qv8qobjectwrapper.cpp b/src/qml/qml/v8/qv8qobjectwrapper.cpp
index dabd09c2a9..fde7f66abc 100644
--- a/src/qml/qml/v8/qv8qobjectwrapper.cpp
+++ b/src/qml/qml/v8/qv8qobjectwrapper.cpp
@@ -1148,7 +1148,7 @@ void QV8QObjectWrapper::deleteWeakQObject(QV8QObjectResource *resource)
if (object) {
QQmlData *ddata = QQmlData::get(object, false);
if (ddata) {
- if (ddata->inCreation) {
+ if (ddata->rootObjectInCreation) {
ddata->v8object.MakeWeak(0, WeakQObjectReferenceCallback);
return;
}
@@ -1891,7 +1891,7 @@ static v8::Handle<v8::Value> ToString(QV8Engine *engine, QObject *object, int, v
static v8::Handle<v8::Value> Destroy(QV8Engine *, QObject *object, int argCount, v8::Handle<v8::Object> args)
{
QQmlData *ddata = QQmlData::get(object, false);
- if (!ddata || ddata->indestructible || ddata->inCreation) {
+ if (!ddata || ddata->indestructible || ddata->rootObjectInCreation) {
const char *error = "Invalid attempt to destroy() an indestructible object";
v8::ThrowException(v8::Exception::Error(v8::String::New(error)));
return v8::Undefined();