X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fbraid.lisp;h=ed76500b43edb34c339c0fb6e3de870fcc0e2df1;hb=5e291412ff095a2016388eee8ac265e12d565119;hp=3b87419586b5d3dfd8ebc1045886686363c76da1;hpb=b171183c7115b865b00662ff346061ecd5291ce4;p=sbcl.git diff --git a/src/pcl/braid.lisp b/src/pcl/braid.lisp index 3b87419..ed76500 100644 --- a/src/pcl/braid.lisp +++ b/src/pcl/braid.lisp @@ -592,12 +592,14 @@ (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*) (defun make-class-predicate (class name) (let* ((gf (ensure-generic-function name :lambda-list '(object)))