shift fixes - if an integer is a negative number then the return value of "Swap32IfLE" was -1

pull/1/head
plettix 9 years ago
parent 455ba61e4f
commit fe7df89fb1

@ -720,10 +720,10 @@ typedef struct _rfbClientRec {
#define Swap24(l) ((((l) & 0xff) << 16) | (((l) >> 16) & 0xff) | \ #define Swap24(l) ((((l) & 0xff) << 16) | (((l) >> 16) & 0xff) | \
(((l) & 0x00ff00))) (((l) & 0x00ff00)))
#define Swap32(l) (((l) >> 24) | \ #define Swap32(l) ((((l) >> 24) & 0x000000ff)| \
(((l) & 0x00ff0000) >> 8) | \ (((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \ (((l) & 0x0000ff00) << 8) | \
((l) << 24)) (((l) & 0x000000ff) << 24))
extern char rfbEndianTest; extern char rfbEndianTest;

@ -47,13 +47,13 @@
(*(char *)&client->endianTest ? ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) : (s)) (*(char *)&client->endianTest ? ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) : (s))
#define rfbClientSwap32IfLE(l) \ #define rfbClientSwap32IfLE(l) \
(*(char *)&client->endianTest ? ((((l) & 0xff000000) >> 24) | \ (*(char *)&client->endianTest ? ((((l) >> 24) & 0x000000ff) | \
(((l) & 0x00ff0000) >> 8) | \ (((l) & 0x00ff0000) >> 8) | \
(((l) & 0x0000ff00) << 8) | \ (((l) & 0x0000ff00) << 8) | \
(((l) & 0x000000ff) << 24)) : (l)) (((l) & 0x000000ff) << 24)) : (l))
#define rfbClientSwap64IfLE(l) \ #define rfbClientSwap64IfLE(l) \
(*(char *)&client->endianTest ? ((((l) & 0xff00000000000000ULL) >> 56) | \ (*(char *)&client->endianTest ? ((((l) >> 56 ) & 0xff00000000000000ULL) | \
(((l) & 0x00ff000000000000ULL) >> 40) | \ (((l) & 0x00ff000000000000ULL) >> 40) | \
(((l) & 0x0000ff0000000000ULL) >> 24) | \ (((l) & 0x0000ff0000000000ULL) >> 24) | \
(((l) & 0x000000ff00000000ULL) >> 8) | \ (((l) & 0x000000ff00000000ULL) >> 8) | \

Loading…
Cancel
Save