diff options
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; | 
