aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvme.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-02-06 16:47:29 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-07 12:44:12 +0100
commit1583093081d6d74acd7618880c7d6101961f47ad (patch)
treeeb8020c7ab0eddde75abb395f6195a48982dbaf7 /src/qml/qml/qqmlvme.cpp
parent324ae0d7d99ef9f7159d29b2e0e7eabe5f8a43a4 (diff)
[new compiler] Fix tst_qqmlincubator::deleteContext
Protect against QQmlContext deletion during incubation re-using the existing QQmlContextGuard. Change-Id: Ia1c0241029765cc2e00a9b0ffcf484127de20606 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r--src/qml/qml/qqmlvme.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvme.cpp b/src/qml/qml/qqmlvme.cpp
index 7d521192ad..7d1e8cc8f0 100644
--- a/src/qml/qml/qqmlvme.cpp
+++ b/src/qml/qml/qqmlvme.cpp
@@ -1307,6 +1307,14 @@ void QQmlVMEGuard::guard(QQmlVME *vme)
m_contexts[m_contextCount - 1] = vme->rootContext.contextData();
}
+void QQmlVMEGuard::guard(QmlObjectCreator *creator)
+{
+ clear();
+ m_contextCount = 1;
+ m_contexts = new QQmlGuardedContextData[m_contextCount];
+ m_contexts[0] = creator->parentContextData();
+}
+
void QQmlVMEGuard::clear()
{
delete [] m_objects;