0.8.6.28:
[sbcl.git] / contrib / sb-bsd-sockets / foreign-glue.lisp
index 446b5d2..958497f 100644 (file)
       `(progn
        ;;(declaim (inline ,el (setf ,el)))
        (defun ,el (ptr &optional (index 0))
-         ,(template 'prog1 nil))
+         (declare (optimize (speed 3)))
+         (sb-sys:with-pinned-objects (ptr) 
+          ,(template 'prog1 nil)))
        (defconstant ,(intern (format nil "OFFSET-OF-~A" el)) ,offset)
        (defun (setf ,el) (newval ptr &optional (index 0))
-         ,(template 'setf 'newval))))))
+         (declare (optimize (speed 3)))
+         (sb-sys:with-pinned-objects (ptr) 
+          ,(template 'setf 'newval)))))))
 
 
 ;;; make memory allocator for appropriately-sized block of memory, and