X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fearly-low.lisp;h=abca53479d4a7b66fea887003eb4cb77ab3d4384;hb=bd0ba0f214518e8d72ff2d44de5a1e3e4b02af2c;hp=40cdf1dcdbe5ab1ae40c0c45c9bbe7f9c7ae3f91;hpb=31361af9eb64344f521abbb245ea784c76c746e5;p=sbcl.git diff --git a/src/pcl/early-low.lisp b/src/pcl/early-low.lisp index 40cdf1d..abca534 100644 --- a/src/pcl/early-low.lisp +++ b/src/pcl/early-low.lisp @@ -25,6 +25,8 @@ ;;;; specification. (in-package "SB-PCL") + +(/show "starting early-low.lisp") ;;; FIXME: The PCL package is internal and is used by code in potential ;;; bottlenecks. Access to it might be faster through #.(find-package "SB-PCL") @@ -41,7 +43,6 @@ ;;; #+SB-FLUID `(FIND-PACKAGE ,NAME)) ;;; and use that to replace all three variables.) (defvar *pcl-package* (find-package "SB-PCL")) -(defvar *slot-accessor-name-package* (find-package "SB-SLOT-ACCESSOR-NAME")) ;;; This excludes structure types created with the :TYPE option to ;;; DEFSTRUCT. It also doesn't try to deal with types created by @@ -52,7 +53,15 @@ ;;; it needs a more mnemonic name. -- WHN 19991204 (defun structure-type-p (type) (and (symbolp type) - (let ((class (cl:find-class type nil))) - (and class - (typep (sb-kernel:layout-info (sb-kernel:class-layout class)) - 'sb-kernel:defstruct-description))))) + (not (condition-type-p type)) + (let ((classoid (find-classoid type nil))) + (and classoid + (typep (layout-info + (classoid-layout classoid)) + 'defstruct-description))))) + +(defun condition-type-p (type) + (and (symbolp type) + (condition-classoid-p (find-classoid type nil)))) + +(/show "finished with early-low.lisp")