OSDN Git Service

vbo: fix incorrect switch statement in init_mat_currval()
authorBrian Paul <brianp@vmware.com>
Mon, 12 Oct 2015 17:32:35 +0000 (11:32 -0600)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 21 Oct 2015 13:23:21 +0000 (14:23 +0100)
The variable 'i' is a value in [0, MAT_ATTRIB_MAX-1] so subtracting
VERT_ATTRIB_GENERIC0 gave a bogus value and we executed the default
switch clause for all loop iterations.

This doesn't fix any known issues but was clearly incorrect.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit dd293d8aae324ac7b9d5297e33a1e732e1f3f4d3)

src/mesa/vbo/vbo_context.c

index e3eb286..802955d 100644 (file)
@@ -121,7 +121,7 @@ static void init_mat_currval(struct gl_context *ctx)
       /* Size is fixed for the material attributes, for others will
        * be determined at runtime:
        */
-      switch (i - VERT_ATTRIB_GENERIC0) {
+      switch (i) {
       case MAT_ATTRIB_FRONT_SHININESS:
       case MAT_ATTRIB_BACK_SHININESS:
         cl->Size = 1;