From c21807d2f7329a363f2c68cd8ef4dfc46575d52f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 13 Dec 2010 17:29:56 -0700 Subject: st/mesa: add geom program code in destroy_program_variants() --- src/mesa/state_tracker/st_program.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 0e67fcca17b..65a56319964 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -1046,6 +1046,27 @@ destroy_program_variants(struct st_context *st, struct gl_program *program) } } break; + case MESA_GEOMETRY_PROGRAM: + { + struct st_geometry_program *stgp = + (struct st_geometry_program *) program; + struct st_gp_varient *gpv, **prev = &stgp->varients; + + for (gpv = stgp->varients; gpv; ) { + struct st_gp_varient *next = gpv->next; + if (gpv->key.st == st) { + /* unlink from list */ + *prev = next; + /* destroy this variant */ + delete_gp_varient(st, gpv); + } + else { + prev = &gpv; + } + gpv = next; + } + } + break; default: _mesa_problem(NULL, "Unexpected program target in " "destroy_program_variants_cb()"); -- cgit v1.2.3