Change GET/GBIT32 macros to explicitly cast final result to u32int.
Otherwise, the type of the expression will be int, and if written to a uvlong (or just a ulong on most 64-bit systems), it will be sign-extended. This was going on in drawfcall with Mouse.msec, which is declared as a ulong. This fix assumes that the protocols only send unsigned numbers, which is true.
This commit is contained in:
parent
3a19470202
commit
9a5678a8a9
2 changed files with 2 additions and 2 deletions
|
|
@ -53,7 +53,7 @@ AUTOLIB(draw)
|
|||
(p)[3] = (x)&0xFF
|
||||
|
||||
#define GET(p, x) \
|
||||
((x) = (((p)[0] << 24) | ((p)[1] << 16) | ((p)[2] << 8) | ((p)[3])))
|
||||
((x) = (u32int)(((p)[0] << 24) | ((p)[1] << 16) | ((p)[2] << 8) | ((p)[3])))
|
||||
|
||||
#define PUT2(p, x) \
|
||||
(p)[0] = ((x) >> 8)&0xFF, \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue