- (defmethod initialize-internal-slot-functions ((slotd effective-virtual-alien-slot-definition))
- (with-slots (getter setter type) slotd
- (when (and (not (slot-boundp slotd 'reader-function)) (stringp getter))
- (let ((reader (mkbinding-late getter type 'pointer)))
- (setf (slot-value slotd 'reader-function)
- #'(lambda (object)
- (funcall reader (proxy-location object))))))
-
- (when (and (not (slot-boundp slotd 'writer-function)) (stringp setter))
- (let ((writer (mkbinding-late setter 'nil 'pointer type)))
- (setf (slot-value slotd 'writer-function)
- #'(lambda (value object)
- (funcall writer (proxy-location object) value))))))
- (call-next-method))
-