aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInho Lee <inho.lee@qt.io>2024-01-03 11:50:33 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-01-27 04:42:20 +0000
commit7c0ba71d67d453a958da954e7810cad8c3edb0d6 (patch)
tree49b296455d7eaa7b4cd2f26b79c4c157e2b6c4c6
parent9d5698d8e7452265a4bdc2360212c877640c69ca (diff)
Detach QQuick3DWindowAttachment from QQuickWindow in destructor
While loading/unloading Quick3D repeatedly, a deleted windowAttachment can be accessed through QQuickWindow. Fixes: QTBUG-120424 Fixes: QTBUG-121390 Pick-to: 6.6.2 Change-Id: If53e20c2468d4a1f7656087e1d58976760db6d90 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 45bcf958b7f937c52c9f4efa52828820b86942d5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 203e7da8ed903c8304042605d5d464f8b55ad0a6)
-rw-r--r--src/quick3d/qquick3dscenemanager.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/quick3d/qquick3dscenemanager.cpp b/src/quick3d/qquick3dscenemanager.cpp
index 055848fd..06d0add7 100644
--- a/src/quick3d/qquick3dscenemanager.cpp
+++ b/src/quick3d/qquick3dscenemanager.cpp
@@ -432,6 +432,9 @@ QQuick3DWindowAttachment::~QQuick3DWindowAttachment()
qDeleteAll(resourceCleanupQueue);
qDeleteAll(pendingResourceCleanupQueue);
+ if (m_window)
+ m_window->setProperty(qtQQ3DWAPropName, QVariant());
+
QSSG_CHECK_X(!m_rci || m_rci.use_count() == 1, "RCI has unexpected reference count!");
}