diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-06-02 18:29:06 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-04 13:26:50 +0000 |
commit | 737efff4df7c19634a21e02d9909bd349de5dccd (patch) | |
tree | 182ac88d65674611b1f3093b0af0c49187d7787a /src/quick | |
parent | 30afb68dad566a8532a52ce3c5980a568ba59eb1 (diff) |
QSGBatchRenderer: look for ShaderManager by type only, ignore name
There's only ever one of them, and accessing objectName() from a
different than the owning thread is UB (data race).
The default-constructed QString() is needed, cf. QTBUG-103986.
This is a hotfix for QTBUG-102403, which ran afoul of the guards added
in qtbase/3f32dcd1ddcbe04c77ccd83e2eaa566d7212e732 to fix QTBUG-99775.
Task-number: QTBUG-102403
Change-Id: Idf07b1119ec393e7fd179e8b545cfeb70f5916ec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 543806e96da237a4625b593ed773813e0cdfe3fb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp index b1565899fb..d61b7e49da 100644 --- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp @@ -900,7 +900,7 @@ Renderer::Renderer(QSGDefaultRenderContext *ctx, QSGRendererInterface::RenderMod // The shader manager is shared between renderers (think for example Item // layers that create a new Renderer each) with the same rendercontext (and // so same QRhi). - m_shaderManager = ctx->findChild<ShaderManager *>(QStringLiteral("__qt_ShaderManager"), Qt::FindDirectChildrenOnly); + m_shaderManager = ctx->findChild<ShaderManager *>(QString(), Qt::FindDirectChildrenOnly); if (!m_shaderManager) { m_shaderManager = new ShaderManager(ctx); m_shaderManager->setObjectName(QStringLiteral("__qt_ShaderManager")); |