diff options
author | Bumjoon Park <bumjoon.park@qt.io> | 2022-11-08 17:21:25 +0900 |
---|---|---|
committer | Bumjoon Park <bumjoon.park@qt.io> | 2022-11-08 10:49:37 +0000 |
commit | 5b24e324d34b30f17ab0c405b719d290929763e8 (patch) | |
tree | 805fd20a53d6ad24cb3cc73aee22fb538aee962b /src/quick/scenegraph/qsgthreadedrenderloop.cpp | |
parent | 85399ff0c81348c91a985a73f0160673ef6b972c (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.cpp | 1 |
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"); |