Преглед изворни кода

i965: Fix brw_vs_prog_data_compare to actually check field members.

&a and &b are the address of the local stack variables, not the actual
structures.  Instead of comparing the fields of a and b, we compared
...some stack memory.

Caught by Valgrind on Piglit's glsl-lod-bias test (among many others).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68233
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Cc: mesa-stable@lists.freedesktop.org
tags/mesa-10.1-devel
Kenneth Graunke пре 12 година
родитељ
комит
4e4b079916
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1
    1
      src/mesa/drivers/dri/i965/brw_vs.c

+ 1
- 1
src/mesa/drivers/dri/i965/brw_vs.c Прегледај датотеку

@@ -188,7 +188,7 @@ brw_vs_prog_data_compare(const void *in_a, const void *in_b,

/* Compare the rest of the struct. */
const unsigned offset = sizeof(struct brw_vec4_prog_data);
if (memcmp(((char *) &a) + offset, ((char *) &b) + offset,
if (memcmp(((char *) a) + offset, ((char *) b) + offset,
sizeof(struct brw_vs_prog_data) - offset)) {
return false;
}

Loading…
Откажи
Сачувај