(defun create-cbuffered-db-assoc-callback (fun &optional name) (create-db-assoc-callback (lambda (secondary key-ptr key-size data-ptr data-size) (multiple-value-bind (use-ret ret-buf) (funcall fun secondary (make-cbuffer-from-pointer key-ptr key-size) (make-cbuffer-from-pointer data-ptr data-size)) (cond (use-ret (values t (cbuffer-data ret-buf) (cbuffer-size ret-buf))) (ret-buf (free-cbuffer ret-buf) (values nil nil)) (t (values nil nil))))) name))Source Context