On 24-Apr-10, at 4:48 PM, Søren Sandmann wrote:

diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h
index d5767af..c4f5064 100644
--- a/pixman/pixman-private.h
+++ b/pixman/pixman-private.h
@@ -686,6 +686,24 @@ pixman_region16_copy_from_region32 (pixman_region16_t *dst,

+/* Byte swapping */
+#if HAVE_BYTESWAP_H
+# include <byteswap.h>
+#endif
+#ifndef bswap_16
+# define bswap_16(p) \
+       (((((uint16_t)(p)) & 0x00ff) << 8) | \
+         (((uint16_t)(p))           >> 8));
+#endif
+#ifndef bswap_32
+# define bswap_32(p) \
+         (((((uint32_t)(p)) & 0x000000ff) << 24) | \
+         ((((uint32_t)(p)) & 0x0000ff00) << 8)  | \
+         ((((uint32_t)(p)) & 0x00ff0000) >> 8)  | \
+         ((((uint32_t)(p)))              >> 24));
+#endif


These macros reuse their value which makes them prone to bugs like:

cairo: ce3ad6f41edf86ed6914f4d7f364111eba42ca65

We should either use inline functions or trickier macros.

-Jeff
_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to