Does with-foreign-pointer free up the memory after body is executed?
I have been using constructs such as:
(let ((num-channel-groups* (foreign-alloc :uint))) (ddc-get-num-channel-groups file-handle* num-channel-groups*) (prog1 (mem-ref num-channel-groups* :uint) (foreign-free num-channel-groups*)))
Is with-foreign-pointer the idiomatic way to accomplish the same thing?
Thanks
Mirko
On Sun, Feb 8, 2015 at 12:55 AM, Mirko Vukovic mirko.vukovic@gmail.com wrote:
(let ((num-channel-groups* (foreign-alloc :uint))) (ddc-get-num-channel-groups file-handle* num-channel-groups*) (prog1 (mem-ref num-channel-groups* :uint) (foreign-free num-channel-groups*)))
Is with-foreign-pointer the idiomatic way to accomplish the same thing?
Yes. with-foreign-object is even more convenient since it takes a type rather than a size. with-foreign-object and with-foreign-pointer will also perform stack allocation on implementations that support it.
Cheers,