summaryrefslogtreecommitdiffstats
path: root/src/opengl
diff options
context:
space:
mode:
Diffstat (limited to 'src/opengl')
-rw-r--r--src/opengl/qglshaderprogram.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/opengl/qglshaderprogram.cpp b/src/opengl/qglshaderprogram.cpp
index 0617c36236..790007144c 100644
--- a/src/opengl/qglshaderprogram.cpp
+++ b/src/opengl/qglshaderprogram.cpp
@@ -874,11 +874,12 @@ void QGLShaderProgram::removeAllShaders()
{
Q_D(QGLShaderProgram);
d->removingShaders = true;
- foreach (QGLShader *shader, d->shaders) {
- if (d->programGuard && d->programGuard->id()
- && shader && shader->d_func()->shaderGuard)
- {
- d->glfuncs->glDetachShader(d->programGuard->id(), shader->d_func()->shaderGuard->id());
+ if (d->programGuard) {
+ if (const auto programGuardId = d->programGuard->id()) {
+ foreach (QGLShader *shader, d->shaders) {
+ if (shader && shader->d_func()->shaderGuard)
+ d->glfuncs->glDetachShader(programGuardId, shader->d_func()->shaderGuard->id());
+ }
}
}
foreach (QGLShader *shader, d->anonShaders) {