mesa: fix state.clip[n].plane parsing bug (bug 16611)
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 9 Jul 2008 14:35:50 +0000 (08:35 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 9 Jul 2008 14:39:25 +0000 (08:39 -0600)
src/mesa/shader/arbprogparse.c

index 97bda9c6b38a6d85155df2bc309f45be71c4a769..f10233e5fedc24314230171d0adf15197eae5f91 100644 (file)
@@ -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;