anchor.diff:         do (setf (aref value i) (mem-aref value-ptr :unsigned-char i))
          finally (return value))))
   
  -                    
  +
   ;; (defun your-wrapper-around-the-foreign-function (...)
   ;;   (let ((ptr (your-foreign-function ...)))
   ;;     (unwind-protect
  
positive.code: null-terminated."
    (let ((value-ptr nil))
      (unwind-protect
           (with-foreign-string ((key-ptr key-len) key
                                 :null-terminated-p nil)
             (with-foreign-object (size-ptr :int)
               (setf value-ptr (funcall fn (ptr-of db) key-ptr key-len size-ptr))
               (if (null-pointer-p value-ptr)
  
negative.code:                                           key value)))))))
  
  (defun put-int32->octets (db key value fn)
    (declare (optimize (speed 3)))
    (declare (type int32 key)
             (type (vector (unsigned-byte 8)) value)
             (type function fn))
    (let ((key-len (foreign-type-size :int32))
          (value-len (length value)))
      (with-foreign-objects ((key-ptr :int32)
  