OSDN Git Service

draw: Fix type mismatch between draw_private.h and LLVM
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Tue, 4 Jun 2013 20:19:41 +0000 (21:19 +0100)
committerAdam Jackson <ajax@redhat.com>
Mon, 10 Jun 2013 20:26:14 +0000 (16:26 -0400)
draw_vertex_buffer declared the size field to be a size_t, but the LLVM
code used an int32 instead.  This caused problems on big-endian 64-bit
targets, because the first 32-bit chunk of the 64-bit size_t was always 0.

In one sense size_t seems like a good choice for a size, so one fix
would have been to try to get the LLVM code to use the equivalent of
size_t too.  However, in practice, the size is taken from things like ~0
or width0, both of which are int-sized, so it seemed simpler to make the
size field int-sized as well.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Richard Sandiford <rsandifo@linux.vnet.ibm.com>
src/gallium/auxiliary/draw/draw_private.h

index f30f9af..adde647 100644 (file)
@@ -71,7 +71,7 @@ struct draw_pt_front_end;
  */
 struct draw_vertex_buffer {
    const void *map;
-   size_t size;
+   uint32_t size;
 };
 
 /**