diff options
author | Martin Jones <martin.jones@nokia.com> | 2010-05-06 06:16:08 (GMT) |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2010-05-06 06:16:08 (GMT) |
commit | bf965a3b74a10636a63f72d72ad41e169a9851e3 (patch) | |
tree | bdc89890964200f2f119e3c92177d924939aa180 /src/declarative/qml/qdeclarativecontext.cpp | |
parent | 385799a8269dfb5b48de9e84e52af780fb400272 (diff) | |
download | Qt-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.cpp | 17 |
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; |