X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fdefclass.lisp;h=33bfd0b1a3024063326c7942436f413e21d406b9;hb=d01d509257052e694365b76be5ab597fa06764ec;hp=831dcdd8a73ca018d4059c0e467e1c7c8c945b8c;hpb=970dd272dc84f7420252eadb4829cc193f795716;p=sbcl.git diff --git a/src/pcl/defclass.lisp b/src/pcl/defclass.lisp index 831dcdd..33bfd0b 100644 --- a/src/pcl/defclass.lisp +++ b/src/pcl/defclass.lisp @@ -53,7 +53,7 @@ ;; DEFSTRUCT-P should be true if the class is defined ;; with a metaclass STRUCTURE-CLASS, so that a DEFSTRUCT ;; is compiled for the class. - (defstruct-p (and (eq *boot-state* 'complete) + (defstruct-p (and (eq **boot-state** 'complete) (let ((mclass (find-class metaclass nil))) (and mclass (*subtypep @@ -72,7 +72,8 @@ ',*readers-for-this-defclass* ',*writers-for-this-defclass* ',*slot-names-for-this-defclass* - (sb-c:source-location))))) + (sb-c:source-location) + ',(safe-code-p env))))) (if defstruct-p (progn ;; FIXME: (YUK!) Why do we do this? Because in order @@ -120,7 +121,7 @@ (defun canonize-defclass-options (class-name options) (maplist (lambda (sublist) (let ((option-name (first (pop sublist)))) - (when (member option-name sublist :key #'first) + (when (member option-name sublist :key #'first :test #'eq) (error 'simple-program-error :format-control "Multiple ~S options in DEFCLASS ~S." :format-arguments (list option-name class-name))))) @@ -144,7 +145,7 @@ (:default-initargs (let (initargs arg-names) (doplist (key val) (cdr option) - (when (member key arg-names) + (when (member key arg-names :test #'eq) (error 'simple-program-error :format-control "~@