X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots.lisp;h=7350196998a0e96eb8e45dbdb533573e5bd1fe99;hb=dad60222de85068322fbd0214b9c715053510f4d;hp=4ca54159efe6a5d299b8beb41ce08808c1ac4b6f;hpb=95f17ca63742f8c164309716b35bc25545a849a6;p=sbcl.git diff --git a/src/pcl/slots.lisp b/src/pcl/slots.lisp index 4ca5415..7350196 100644 --- a/src/pcl/slots.lisp +++ b/src/pcl/slots.lisp @@ -111,6 +111,8 @@ (slot-unbound (wrapper-class* wrapper) object slot-name) value))) +;;; This is used during the PCL build, but gets replaced by a deftransform +;;; in fixup.lisp. (define-compiler-macro slot-value (&whole form object slot-name &environment env) (if (and (constantp slot-name env) @@ -148,6 +150,8 @@ (defun safe-set-slot-value (object slot-name new-value) (set-slot-value object slot-name new-value)) +;;; This is used during the PCL build, but gets replaced by a deftransform +;;; in fixup.lisp. (define-compiler-macro set-slot-value (&whole form object slot-name new-value &environment env) (if (and (constantp slot-name env) @@ -444,7 +448,7 @@ (let ((constructor (class-defstruct-constructor class))) (if constructor (funcall constructor) - (allocate-standard-instance (class-wrapper class))))) + (error "Don't know how to allocate ~S" class)))) ;;; FIXME: It would be nicer to have allocate-instance return ;;; uninitialized objects for conditions as well.