mingw: use uintptr_t when converting a pointer to an int

win64 uses 32 bit long, so we cannot use a long to hold a 64 bit
pointer. Thankfully, there's a [u]intptr_t type available exactly
for these uses.
This commit is contained in:
Christophe Fergeau 2012-02-29 19:01:54 +01:00 committed by Marc-André Lureau
parent a14a8c83e0
commit a107b62a74
2 changed files with 5 additions and 5 deletions

View File

@ -39,8 +39,8 @@
extern "C" {
#endif
#define SPICE_GET_ADDRESS(addr) ((void *)(unsigned long)(addr))
#define SPICE_SET_ADDRESS(addr, val) ((addr) = (unsigned long)(val))
#define SPICE_GET_ADDRESS(addr) ((void *)(uintptr_t)(addr))
#define SPICE_SET_ADDRESS(addr, val) ((addr) = (uintptr_t)(val))
typedef int32_t SPICE_FIXED28_4;

View File

@ -243,19 +243,19 @@ void spice_pixman_fill_rect(pixman_image_t *dest,
byte_line += stride;
w = byte_width;
while (w >= 1 && ((unsigned long)d & 1)) {
while (w >= 1 && ((uintptr_t)d & 1)) {
*(uint8_t *)d = (value & 0xff);
w--;
d++;
}
while (w >= 2 && ((unsigned long)d & 3)) {
while (w >= 2 && ((uintptr_t)d & 3)) {
*(uint16_t *)d = value;
w -= 2;
d += 2;
}
while (w >= 4 && ((unsigned long)d & 7)) {
while (w >= 4 && ((uintptr_t)d & 7)) {
*(uint32_t *)d = value;
w -= 4;