aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/coreapi
diff options
context:
space:
mode:
authorAndrew Knight <andrew.knight@digia.com>2014-03-06 14:59:42 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-06 15:50:37 +0100
commit3aa6a8b90f9c0e5f0ad72c462a15157b4e419ae6 (patch)
treea09aa93ab55e76f027c4b4571e5f84916fac7b87 /src/quick/scenegraph/coreapi
parentcb7e8dabf6e5b323bd3f2511127f63bee732fd99 (diff)
QSGBatchRenderer: return when a shader is not returned by the manager
If a shader can't be found from the manager (e.g., if it failed to link), return from rendering. This prevents the renderer from crashing on a null pointer. Task-number: QTBUG-37290 Change-Id: I44d0bbb721854c0bc6da681ff55f71140a5cb0bc Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/quick/scenegraph/coreapi')
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index 8a430c15a2..e271778bde 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -2040,6 +2040,8 @@ void Renderer::renderMergedBatch(const Batch *batch)
QSGMaterial *material = gn->activeMaterial();
ShaderManager::Shader *sms = m_useDepthBuffer ? m_shaderManager->prepareMaterial(material) : m_shaderManager->prepareMaterialNoRewrite(material);
+ if (!sms)
+ return;
QSGMaterialShader *program = sms->program;
if (m_currentShader != sms)
@@ -2124,6 +2126,8 @@ void Renderer::renderUnmergedBatch(const Batch *batch)
QSGMaterial *material = gn->activeMaterial();
ShaderManager::Shader *sms = m_shaderManager->prepareMaterialNoRewrite(material);
+ if (!sms)
+ return;
QSGMaterialShader *program = sms->program;
if (sms != m_currentShader)