summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativecontext.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-05-06 06:16:08 (GMT)
committerMartin Jones <martin.jones@nokia.com>2010-05-06 06:16:08 (GMT)
commitbf965a3b74a10636a63f72d72ad41e169a9851e3 (patch)
treebdc89890964200f2f119e3c92177d924939aa180 /src/declarative/qml/qdeclarativecontext.cpp
parent385799a8269dfb5b48de9e84e52af780fb400272 (diff)
downloadQt-bf965a3b74a10636a63f72d72ad41e169a9851e3.zip
Qt-bf965a3b74a10636a63f72d72ad41e169a9851e3.tar.gz
Qt-bf965a3b74a10636a63f72d72ad41e169a9851e3.tar.bz2
Avoid warnings as delegates with bindings to parent are created and destroyed.
Task-number: QTBUG-10359
Diffstat (limited to 'src/declarative/qml/qdeclarativecontext.cpp')
-rw-r--r--src/declarative/qml/qdeclarativecontext.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp
index ae4223e..b61b8cb 100644
--- a/src/declarative/qml/qdeclarativecontext.cpp
+++ b/src/declarative/qml/qdeclarativecontext.cpp
@@ -528,13 +528,8 @@ void QDeclarativeContextData::invalidate()
parent = 0;
}
-void QDeclarativeContextData::destroy()
+void QDeclarativeContextData::clearExpressions()
{
- if (linkedContext)
- linkedContext->destroy();
-
- if (engine) invalidate();
-
QDeclarativeAbstractExpression *expression = expressions;
while (expression) {
QDeclarativeAbstractExpression *nextExpression = expression->m_nextExpression;
@@ -546,6 +541,16 @@ void QDeclarativeContextData::destroy()
expression = nextExpression;
}
expressions = 0;
+}
+
+void QDeclarativeContextData::destroy()
+{
+ if (linkedContext)
+ linkedContext->destroy();
+
+ if (engine) invalidate();
+
+ clearExpressions();
while (contextObjects) {
QDeclarativeData *co = contextObjects;