i965: Fix brw_gs_prog_data_compare to actually check field members.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 17 Sep 2013 06:41:57 +0000 (23:41 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 19 Sep 2013 17:52:57 +0000 (10:52 -0700)
&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.

Not a candidate for stable since GS code doesn't exist in 9.2.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/i965/brw_vec4_gs.c

index 30989c3faef38ef5519173ef9ee77655a9f5b03e..064e541624d2eea459b49811301eec9cd4025a2a 100644 (file)
@@ -316,7 +316,7 @@ brw_gs_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_gs_prog_data) - offset)) {
       return false;
    }