diff options
author | Andy Shaw <andy.shaw@qt.io> | 2017-11-13 13:56:09 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2017-11-14 08:23:57 +0000 |
commit | d188cdd7378e0e8b384fa812b5907638075d1206 (patch) | |
tree | e02a4e8100398d68e31eef2066797b0939fdf9c2 | |
parent | 19f02c691f790e2b38a23a3955590383425784e7 (diff) |
Fix crash with dangling context object pointers
This is a regression introduced by commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, where the object that owns the
QML context would destroy the context upon destruction. Now the context
may live longer and thus the context->contextObject pointer would become
a dangling pointer.
Task-number: QTBUG-64166
Change-Id: I1df631fa11187abdeff735d8891ad7907e8d4a3d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/qml/types/qqmldelegatemodel.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp index 26e6a81418..e3906f2a7e 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -1979,6 +1979,8 @@ void QQmlDelegateModelItem::destroyObject() Q_ASSERT(data); if (data->ownContext) { data->ownContext->clearContext(); + if (data->ownContext->contextObject == object) + data->ownContext->contextObject = nullptr; data->ownContext = 0; data->context = 0; } |