Hi,
I am forking an FFI library for physics simulation on Github (https://github.com/samvv/Rhipmunk-Physics) but I got stuck with storing racket objects in the library's native structs. From the library's website: http://chipmunk-physics.net/release/Chipmunk-6.x/Chipmunk-6.1.2-API-Referenc e/group__cp_body.html. Here's the part of the code that needs to be changed: (define _cpDataPointer _racket) (define-cstruct _cpBody . [data _cpDataPointer] ; user-defined data, like a game object .) In the following test everything seems to work as expected: (define body1 (cpBodyNew 1.0 1.0)) (set-cpBody-data! body1 "This is a test") (display (cpBody-data body1)) > "This is a test" (set-cpBody-data! body1 (cons 1 2)) (display (cpBody-data body1)) > (1 . 2) However, when I run the following code: (collect-garbage) (display (cpBody-data body1)) Something goes wrong internally. Sometimes DrRacket crashes, sometimes it returns values like #<bad-value>. I have looked into (malloc-immobile-cell v) and (free-immobile-cell cptr) but I am not sure that fiddling with the memory is such a good idea. Could you please give me any guidelines or point me to a procedure I can use to provide this functionality? Thanks, Sam
____________________ Racket Users list: http://lists.racket-lang.org/users

