0.8.21.1:
[sbcl.git] / src / pcl / braid.lisp
index 6d3eb82..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))
          (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)))