aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgthreadedrenderloop.cpp
diff options
context:
space:
mode:
authorBumjoon Park <bumjoon.park@qt.io>2022-11-08 17:21:25 +0900
committerBumjoon Park <bumjoon.park@qt.io>2022-11-08 10:49:37 +0000
commit5b24e324d34b30f17ab0c405b719d290929763e8 (patch)
tree805fd20a53d6ad24cb3cc73aee22fb538aee962b /src/quick/scenegraph/qsgthreadedrenderloop.cpp
parent85399ff0c81348c91a985a73f0160673ef6b972c (diff)
Fix access to destroyed QRhi object
If QRhi is destroyed, the rhi member of QQuickWindowPriavte must also be initialized. Otherwise, it remains a dangling pointer and causes segmentation fault Pick-to: 6.2 6.4 Fixes: QTBUG-108252 Change-Id: Ic1b003d28da0fd1163f80a913d9ca3b4a8bb1e1b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/quick/scenegraph/qsgthreadedrenderloop.cpp')
-rw-r--r--src/quick/scenegraph/qsgthreadedrenderloop.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgthreadedrenderloop.cpp b/src/quick/scenegraph/qsgthreadedrenderloop.cpp
index e66e02b725..9ede91a74f 100644
--- a/src/quick/scenegraph/qsgthreadedrenderloop.cpp
+++ b/src/quick/scenegraph/qsgthreadedrenderloop.cpp
@@ -511,6 +511,7 @@ void QSGRenderThread::invalidateGraphics(QQuickWindow *window, bool inDestructor
if (ownRhi)
QSGRhiSupport::instance()->destroyRhi(rhi, dd->graphicsConfig);
rhi = nullptr;
+ dd->rhi = nullptr;
qCDebug(QSG_LOG_RENDERLOOP, QSG_RT_PAD, "- QRhi destroyed");
} else {
qCDebug(QSG_LOG_RENDERLOOP, QSG_RT_PAD, "- persistent GL, avoiding cleanup");