draw: Replace pointer arithmetic with cast.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 18 Jun 2009 13:46:45 +0000 (14:46 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 18 Jun 2009 13:54:09 +0000 (14:54 +0100)
Using uintptr_t as intermediate type for pointer -> integer conversions is
easier to understand and does not cause any size mismatch warnings.
uintptr_t is part of C99, and we already provide a suitable replacement
definition for all platforms we care about.

src/gallium/auxiliary/draw/draw_pt_elts.c

index b7780fb5073c5bb68cf5600ae1130bb8dfd89787..88f4d9f495ac306aa0f0e1ae9138d1b9362c2dcb 100644 (file)
@@ -54,7 +54,8 @@ static unsigned elt_ubyte( const void *elts, unsigned idx )
 
 static unsigned elt_vert( const void *elts, unsigned idx )
 {
-   return (const ubyte *)elts - (const ubyte *)NULL + idx;
+   /* unsigned index is packed in the pointer */
+   return (unsigned)(uintptr_t)elts + idx;
 }
 
 pt_elt_func draw_pt_elt_func( struct draw_context *draw )