From 935f93f966aa298c4d4115ac766cb2ff46ad6514 Mon Sep 17 00:00:00 2001
From: Brian <brian@nostromo.localnet.net>
Date: Sat, 24 Mar 2007 16:20:02 -0600
Subject: Free shader-related context state: _mesa_free_shader_state()

---
 src/mesa/shader/shader_api.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

(limited to 'src/mesa/shader/shader_api.c')

diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c
index 88aa8c50f5b..002b42721df 100644
--- a/src/mesa/shader/shader_api.c
+++ b/src/mesa/shader/shader_api.c
@@ -211,6 +211,22 @@ _mesa_init_shader_state(GLcontext * ctx)
 }
 
 
+/**
+ * Free the per-context shader-related state.
+ */
+void
+_mesa_free_shader_state(GLcontext *ctx)
+{
+   if (ctx->Shader.CurrentProgram) {
+      ctx->Shader.CurrentProgram->RefCount--;
+      if (ctx->Shader.CurrentProgram->RefCount <= 0) {
+         _mesa_free_shader_program(ctx, ctx->Shader.CurrentProgram);
+         ctx->Shader.CurrentProgram = NULL;
+      }
+   }
+}
+
+
 /**
  * Copy string from <src> to <dst>, up to maxLength characters, returning
  * length of <dst> in <length>.
-- 
cgit v1.2.3