summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-07-09 08:35:50 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-07-09 08:39:25 -0600
commit4ca0af188267ab92f84223acd7f8b957be0cb5f6 (patch)
tree495d07ffd196e2b9a15c59203be1a2b2e28de2e0
parenta2e435054c0d410e92d1e76a23f8d801a606537d (diff)
mesa: fix state.clip[n].plane parsing bug (bug 16611)
-rw-r--r--src/mesa/shader/arbprogparse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c
index 97bda9c6b3..f10233e5fe 100644
--- a/src/mesa/shader/arbprogparse.c
+++ b/src/mesa/shader/arbprogparse.c
@@ -1132,7 +1132,9 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
struct arb_program *Program,
gl_state_index state_tokens[STATE_LENGTH])
{
- switch (*(*inst)++) {
+ GLubyte token = *(*inst)++;
+
+ switch (token) {
case STATE_MATERIAL_PARSER:
state_tokens[0] = STATE_MATERIAL;
state_tokens[1] = parse_face_type (inst);
@@ -1317,7 +1319,6 @@ parse_state_single_item (GLcontext * ctx, const GLubyte ** inst,
case STATE_CLIP_PLANE:
state_tokens[0] = STATE_CLIPPLANE;
- state_tokens[1] = parse_integer (inst, Program);
if (parse_clipplane_num (ctx, inst, Program,
(GLint *) &state_tokens[1]))
return 1;
@@ -1769,7 +1770,9 @@ parse_param_elements (GLcontext * ctx, const GLubyte ** inst,
gl_state_index state_tokens[STATE_LENGTH] = {0, 0, 0, 0, 0};
GLfloat const_values[4];
- switch (*(*inst)++) {
+ GLubyte token = *(*inst)++;
+
+ switch (token) {
case PARAM_STATE_ELEMENT:
if (parse_state_single_item (ctx, inst, Program, state_tokens))
return 1;