[racket] Coerce Number to uint32

From: Vince Kuyatt (vince.raiken at gmail.com)
Date: Sat Jun 9 02:42:43 EDT 2012

While working on the Rhipmunk FFI, I ran into a definition called
"NOT_GRABABLE_MASK", which as far as I can tell, is defined as:
#define GRABABLE_MASK (1<<31)
#define NOT_GRABABLE_MASK (~GRABABLE_MASK)

The problem with this, is that when I do the same operations:
(define GRABABLE_MASK (int->uint (arithmetic-shift 1 31)))
(define NOT_GRABABLE_MASK (bitwise-not GRABABLE_MASK))

I get an error thrown back at me when I use it in one of the Chipmunk
functions:
Scheme->C: expects argument of type <uint32>; given -2147483649

How can I coerce the definitions of those two masks so that they will be a
uint32 that I can pass to the Chipmunk API?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120609/8f6df1ba/attachment.html>

Posted on the users mailing list.