aboutsummaryrefslogtreecommitdiff
path: root/include/drawfcall.h
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-11-04 20:41:42 +0000
committerrsc <devnull@localhost>2006-11-04 20:41:42 +0000
commit9a5678a8a95c46913c15a5fc19f73c113e8ed036 (patch)
tree0a4ea2fc4ec7ada7397ac05b684ecec5e78a4be9 /include/drawfcall.h
parent3a19470202c5c0f6e9375e5d57535c3d508f2edf (diff)
downloadplan9port-9a5678a8a95c46913c15a5fc19f73c113e8ed036.tar.gz
plan9port-9a5678a8a95c46913c15a5fc19f73c113e8ed036.tar.bz2
plan9port-9a5678a8a95c46913c15a5fc19f73c113e8ed036.zip
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.
Diffstat (limited to 'include/drawfcall.h')
-rw-r--r--include/drawfcall.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/drawfcall.h b/include/drawfcall.h
index e8a8c9b2..0d5cd6d3 100644
--- a/include/drawfcall.h
+++ b/include/drawfcall.h
@@ -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, \