From: Brian Paul Date: Wed, 20 Feb 2013 14:39:04 +0000 (-0700) Subject: st/mesa: check for dummy programs in destroy_program_variants() X-Git-Tag: android-x86-4.4-r1~1195 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8bb291b0f59e8e13bc252cb35672eb468e53881a;p=android-x86%2Fexternal-mesa.git 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 --- 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) {