summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_program.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2013-02-20 07:39:04 -0700
committerIan Romanick <[email protected]>2013-03-05 14:57:09 -0800
commit1505ce833ae5e9a0b310f7f0971be31b157bb7a3 (patch)
tree6fd17eec330cba9e56c70708b542f65ba2f1ace9 /src/mesa/state_tracker/st_program.c
parent6bc298a5b0f90a3ebb31a85c2cba5852d7fac4e0 (diff)
st/mesa: check for dummy programs in destroy_program_variants()
When we destroy an ARB vp/fp whose ID was gen'd but not otherwise used we get a pointer to the dummy/placeholder program. We can't destroy that one so just skip it. This only failed during context tear-down because glDeleteProgramsARB() was already aware of dummy programs. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=38086 Note: This is a candidate for the stable branches. Tested-by: Andreas Boll <[email protected]> (cherry picked from commit 8bb291b0f59e8e13bc252cb35672eb468e53881a)
Diffstat (limited to 'src/mesa/state_tracker/st_program.c')
-rw-r--r--src/mesa/state_tracker/st_program.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index a9111b523a4..f56f7cb1c5d 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1142,7 +1142,7 @@ st_print_shaders(struct gl_context *ctx)
static void
destroy_program_variants(struct st_context *st, struct gl_program *program)
{
- if (!program)
+ if (!program || program == &_mesa_DummyProgram)
return;
switch (program->Target) {