summaryrefslogtreecommitdiff
path: root/indra/llrender/llglslshader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llrender/llglslshader.cpp')
-rw-r--r--indra/llrender/llglslshader.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 91d756c0d1..bc349c2015 100644
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -348,13 +348,20 @@ void LLGLSLShader::unloadInternal()
if (mProgramObject)
{
GLuint obj[1024];
- GLsizei count;
+ GLsizei count = 0;
glGetAttachedShaders(mProgramObject, 1024, &count, obj);
for (GLsizei i = 0; i < count; i++)
{
glDetachShader(mProgramObject, obj[i]);
- glDeleteShader(obj[i]);
+ }
+
+ for (GLsizei i = 0; i < count; i++)
+ {
+ if (glIsShader(obj[i]))
+ {
+ glDeleteShader(obj[i]);
+ }
}
glDeleteProgram(mProgramObject);