diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-11-17 15:27:04 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-17 16:53:24 +0100 |
commit | 16316391948b09c7249b5094493eeef6b869d9bc (patch) | |
tree | 0f95ae887392657f80324355b3be0e2d69646be8 /src/declarative | |
parent | 1bc5117533b09548f7b669a47ae4657b2d22f561 (diff) |
Fix crash in incubator when a guarded context is deleted
Change-Id: Ice7375c344b7e8d0d11cc6ee0bdfdf864ecd7109
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r-- | src/declarative/qml/qdeclarativeincubator.cpp | 1 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativevme.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/declarative/qml/qdeclarativeincubator.cpp b/src/declarative/qml/qdeclarativeincubator.cpp index 80bdfac24a..bedf355854 100644 --- a/src/declarative/qml/qdeclarativeincubator.cpp +++ b/src/declarative/qml/qdeclarativeincubator.cpp @@ -97,6 +97,7 @@ void QDeclarativeEnginePrivate::incubate(QDeclarativeIncubator &i, QDeclarativeC incubatorList.insert(p); incubatorCount++; + p->vmeGuard.guard(&p->vme); p->changeStatus(QDeclarativeIncubator::Loading); if (incubationController) diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index e39a7c90f8..8f11b2842d 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -1455,7 +1455,7 @@ void QDeclarativeVMEGuard::guard(QDeclarativeVME *vme) for (int ii = 0; ii < m_objectCount; ++ii) m_objects[ii] = vme->objects[ii]; - m_contextCount = (vme->rootContext.isNull())?0:1 + vme->states.count(); + m_contextCount = (vme->rootContext.isNull()?0:1) + vme->states.count(); m_contexts = new QDeclarativeGuardedContextData[m_contextCount]; for (int ii = 0; ii < vme->states.count(); ++ii) m_contexts[ii] = vme->states.at(ii).context; |