X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/b7657b86f85f575d5776dc6b626b1dc258d1fa47..3ca0fb8175991a0cfba941f6f0e691678ed11859:/src/description-class.lisp diff --git a/src/description-class.lisp b/src/description-class.lisp index fb6e7ff..de1fc0c 100644 --- a/src/description-class.lisp +++ b/src/description-class.lisp @@ -92,7 +92,7 @@ (mapcar (lambda (slot) (or (find-attribute description - (slot-definition-name slot)) + (slot-definition-name slot) nil) (let* ((*init-time-description* description) (attribute-class (or (ignore-errors @@ -129,7 +129,7 @@ initargs ) (setf (slot-value description (attribute-name attribute)) (attribute-class attribute)) - (apply #'change-class attribute (attribute-class attribute) + (apply #'change-class attribute (find-class (attribute-class attribute)) initargs))))))))) @@ -232,8 +232,9 @@ (print-unreadable-object (object stream :type t :identity t) (princ (ignore-errors (description-print-name (find-layer object))) stream))) -(defun find-description (name) - (find-layer (find-class (defining-description name)))) +(defun find-description (name &optional (errorp t)) + (let ((class (find-class (defining-description name) errorp))) + (when class (find-layer class))))