0.9.1.38:
[sbcl.git] / src / pcl / braid.lisp
index 0c62370..ed76500 100644 (file)
                                     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)))