Mesa (master): st/mesa: add geom program code in destroy_program_variants()

Brian Paul brianp at kemper.freedesktop.org
Tue Dec 14 00:35:42 UTC 2010


Module: Mesa
Branch: master
Commit: c21807d2f7329a363f2c68cd8ef4dfc46575d52f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c21807d2f7329a363f2c68cd8ef4dfc46575d52f

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Dec 13 17:29:56 2010 -0700

st/mesa: add geom program code in destroy_program_variants()

---

 src/mesa/state_tracker/st_program.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 0e67fcc..65a5631 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()");




More information about the mesa-commit mailing list