diff options
Diffstat (limited to 'mesalib/src/mesa/main/shaderapi.c')
-rw-r--r-- | mesalib/src/mesa/main/shaderapi.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c index c3aabe43f..6868dfab0 100644 --- a/mesalib/src/mesa/main/shaderapi.c +++ b/mesalib/src/mesa/main/shaderapi.c @@ -390,10 +390,12 @@ delete_shader_program(struct gl_context *ctx, GLuint name) if (!shProg) return; - shProg->DeletePending = GL_TRUE; + if (!shProg->DeletePending) { + shProg->DeletePending = GL_TRUE; - /* effectively, decr shProg's refcount */ - _mesa_reference_shader_program(ctx, &shProg, NULL); + /* effectively, decr shProg's refcount */ + _mesa_reference_shader_program(ctx, &shProg, NULL); + } } |