Hi Christoph, I think that NULL should be correct and work - since you're creating a pointer object to address 0. However, the FFI has a convenience for null-pointers: you can pass in #f instead. That's easier and requires one less GC object. It's mentioned in the manual on c-pointer foreign type: http://wiki.call-cc.org/man/5/Foreign%20type%20specifiers#pointers
That takes me to my personal experience which I want to share: when creating foreign bindings, just use foriegn-lambda and skip the bind dependency. Maybe when you have huge API's, bind can save you some time. But I'd say that hand-written foreign-lambdas give you more control of what's going on, force you to think about every function and make sure it's safe and generally produce better interfaces. I hope this may give you some pointers. K. On Fri, Mar 22, 2019, 17:50 Christoph Lange <christ...@clange.de wrote: > I wrote the following in my attempt to interface to the mosquitto MQTT > library: > > > (bind* "struct mosquitto *mosquitto_new(const char *id, > ___bool clean_session, > void *obj);") > > (define NULL (object->pointer 0)) > (define mqttc (mosquitto-new NULL #t NULL)) > > > But I'm unsure about my adventurous definition of `NULL`. It works, but is > it correct? > > > Another thing: on the bind egg's documentation page, `___blob` is not > mentioned, but I luckily found it in the sql-de-lite code, and it saved me > a lot of headaches :-) Shouldn't it be there? > > /Christoph > _______________________________________________ > Chicken-users mailing list > Chicken-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/chicken-users >
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users