From 5989e2d1c4fa997dc2dbd4ea331bf6e77a425aff Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Wed, 29 Feb 2012 19:01:54 +0100 Subject: 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. --- client/canvas.cpp | 2 +- client/cursor.cpp | 2 +- common/draw.h | 4 ++-- common/pixman_utils.c | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/canvas.cpp b/client/canvas.cpp index 139b663b..0986d47b 100644 --- a/client/canvas.cpp +++ b/client/canvas.cpp @@ -70,7 +70,7 @@ void Canvas::clear() void Canvas::begin_draw(SpiceMsgDisplayBase& base, int size, size_t min_size) { - _base = (unsigned long)&base; + _base = (uintptr_t)&base; } void Canvas::draw_fill(SpiceMsgDisplayDrawFill& fill, int size) diff --git a/client/cursor.cpp b/client/cursor.cpp index e9e3006d..0584b884 100644 --- a/client/cursor.cpp +++ b/client/cursor.cpp @@ -64,7 +64,7 @@ CursorData::CursorData(SpiceCursor& cursor, int data_size) } if (data_size < expected_size) { - THROW("access violation 0x%lx %u", (unsigned long)cursor.data, expected_size); + THROW("access violation 0x%lx %u", (uintptr_t)cursor.data, expected_size); } _data = new uint8_t[expected_size]; memcpy(_data, cursor.data, expected_size); diff --git a/common/draw.h b/common/draw.h index 793169ff..8b1206de 100644 --- a/common/draw.h +++ b/common/draw.h @@ -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; diff --git a/common/pixman_utils.c b/common/pixman_utils.c index c04b01f3..1136aa72 100644 --- a/common/pixman_utils.c +++ b/common/pixman_utils.c @@ -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; -- cgit