anchor.diff:  
   (defmacro with-pointer-to-vector-data ((ptr-var vector) &body body)
     "Bind PTR-VAR to a foreign pointer to the data in VECTOR."
  -  (let ((vector-sym (gensym "VECTOR")))
  -    `(let ((,vector-sym ,vector))
  -       (with-foreign-pointer (,ptr-var (length ,vector-sym))
  -         (copy-to-foreign-vector ,vector-sym ,ptr-var)
  -         (unwind-protect
  -              (progn ,@body)
  -           (copy-from-foreign-vector ,vector-sym ,ptr-var))))))
  +  (let ((vector-sym (gensym "VECTOR"))
  +        (heap-pointer (gethash vector *static-vector-pointer*)))
  +    (if heap-pointer
  +        `(let ((,ptr-var ,heap-pointer))
  +           (progn ,@body))
  +        `(let ((,vector-sym ,vector))
  +           (with-foreign-pointer (,ptr-var (length ,vector-sym))
  +             (copy-to-foreign-vector ,vector-sym ,ptr-var)
  +             (unwind-protect
  +                  (progn ,@body)
  +               (copy-from-foreign-vector ,vector-sym ,ptr-var)))))))
   
   ;;;# Dereferencing
   
  
positive.code:     (:pointer "getPointer")
      ((:short :unsigned-short) "getShort")))
  
  (defun make-shareable-byte-vector (size)
    "Create a Lisp vector of SIZE bytes can passed to
  WITH-POINTER-TO-VECTOR-DATA."
    (make-array size :element-type '(unsigned-byte 8)))
  
  (let ((method (jmethod "com.sun.jna.Pointer"
                         (jna-setter :char) "long" (jna-setter-arg-type :char))))
  
negative.code:    #:native-namestring
     #:%mem-ref
     #:%mem-set
     #:%foreign-symbol-pointer
     #:%defcallback
     #:%callback
  