;;; FUNCALLABLE-STANDARD-CLASS.
(defun find-slot-definition (class slot-name)
- (declare (symbol slot-name))
- (let* ((vector (class-slot-table class))
- (index (rem (sxhash slot-name) (length vector))))
- (declare (simple-vector vector) (index index)
- (optimize (sb-c::insert-array-bounds-checks 0)))
- (do ((plist (the list (svref vector index)) (cdr plist)))
- ((not (consp plist)))
- (let ((key (car plist)))
- (setf plist (cdr plist))
- (when (eq key slot-name)
- (return (cddar plist)))))))
+ (dolist (slotd (class-slots class))
+ (when (eq slot-name (slot-definition-name slotd))
+ (return slotd))))
-(defun find-slot-cell (class slot-name)
+(defun find-slot-cell (wrapper slot-name)
(declare (symbol slot-name))
- (let* ((vector (class-slot-table class))
+ (let* ((vector (layout-slot-table wrapper))
(index (rem (sxhash slot-name) (length vector))))
(declare (simple-vector vector) (index index)
(optimize (sb-c::insert-array-bounds-checks 0)))