On Sun, Apr 18, 2010 at 7:17 PM, Alexandre Paes alex.paes@streetdogstudio.com wrote:
(defun release-capture (capture*) (cffi:with-foreign-object (capture** :long) (setf (cffi:mem-ref capture** :long) (cffi:pointer-address capture*)) (%release-capture capture**))) It works but it doesn't feel all that nice, is this the best/correct way of achieving the same as the C code?
You should probably use the pointer type:
(with-foreign-object (capture** :pointer) (setf (cffi:mem-ref capture** :pointer) capture*) (%release-capture capture**))
Enhancing with-foreign-object such that it accepts the same arguments as foreign-alloc is in my wish list. That would help make this example more concise.
HTH,