class)
spec))
(set-slot 'class-precedence-list (classes cpl))
+ (set-slot 'cpl-available-p t)
(set-slot 'can-precede-list (classes (cdr cpl)))
(set-slot 'incompatible-superclass-list nil)
(set-slot 'direct-superclasses (classes direct-supers))
(set-val 'location index)
(let ((fsc-p nil))
(set-val 'reader-function (make-optimized-std-reader-method-function
- fsc-p slot-name index))
+ fsc-p nil slot-name index))
(set-val 'writer-function (make-optimized-std-writer-method-function
- fsc-p slot-name index))
+ fsc-p nil slot-name index))
(set-val 'boundp-function (make-optimized-std-boundp-method-function
- fsc-p slot-name index)))
+ fsc-p nil slot-name index)))
(set-val 'accessor-flags 7)
(let ((table (or (gethash slot-name *name->class->slotd-table*)
(setf (gethash slot-name *name->class->slotd-table*)
(t
(error "~@<~S is not the name of a class.~@:>" name)))))
-(defun maybe-reinitialize-structure-class (classoid)
+(defun ensure-defstruct-class (classoid)
(let ((class (classoid-pcl-class classoid)))
- (when class
- (ensure-non-standard-class (class-name class) class))))
+ (cond (class
+ (ensure-non-standard-class (class-name class) class))
+ ((eq 'complete *boot-state*)
+ (ensure-non-standard-class (classoid-name classoid))))))
-(pushnew 'maybe-reinitialize-structure-class sb-kernel::*defstruct-hooks*)
+(pushnew 'ensure-defstruct-class sb-kernel::*defstruct-hooks*)
\f
(defun make-class-predicate (class name)
(let* ((gf (ensure-generic-function name :lambda-list '(object)))