X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fvector.lisp;h=c4d7eba9d64884e2f28fde2afe97cddf38741955;hb=316eddc9b2b1aa24012ed826ce700105fdbcdfdb;hp=12a4640f7f3e62d787e223659cae8d8362ff51c2;hpb=c713eb2b521b048ff2c927ec52b861787d289f85;p=sbcl.git diff --git a/src/pcl/vector.lisp b/src/pcl/vector.lisp index 12a4640..c4d7eba 100644 --- a/src/pcl/vector.lisp +++ b/src/pcl/vector.lisp @@ -638,7 +638,7 @@ (standard-class-p class) (not (eq class *the-class-t*)) ; shouldn't happen, though. (let ((slotd (find-slot-definition class slot-name))) - (and slotd (classp (slot-definition-allocation slotd))))))) + (and slotd (eq :class (slot-definition-allocation slotd))))))) (defun skip-fast-slot-access-p (class-form slot-name-form type) (let ((class (and (constantp class-form) (eval class-form))) @@ -1008,8 +1008,8 @@ ;;; Pull a name out of the %METHOD-NAME declaration in the function ;;; body given, or return NIL if no %METHOD-NAME declaration is found. (defun body-method-name (body) - (multiple-value-bind (documentation declarations real-body) - (extract-declarations body nil) + (multiple-value-bind (real-body declarations documentation) + (parse-body body nil) (declare (ignore documentation real-body)) (let ((name-decl (get-declaration '%method-name declarations))) (and name-decl @@ -1156,7 +1156,7 @@ (w-t pv-wrappers)) (dolist (arg args) (setq w (wrapper-of arg)) - (unless (eq t (wrapper-state w)) ; FIXME: should be INVALID-WRAPPER-P + (when (invalid-wrapper-p w) (setq w (check-wrapper-validity arg))) (setf (car w-t) w)) (setq w-t (cdr w-t))