X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Flow.lisp;h=0fd9df546f212b9a48a9d70d04b6db54547b9433;hb=dec94b039e8ec90baf21463df839a6181de606f6;hp=e825431615d00681ec80deff26b5387563555957;hpb=31361af9eb64344f521abbb245ea784c76c746e5;p=sbcl.git diff --git a/src/pcl/low.lisp b/src/pcl/low.lisp index e825431..0fd9df5 100644 --- a/src/pcl/low.lisp +++ b/src/pcl/low.lisp @@ -156,10 +156,6 @@ ;;; In all cases, SET-FUNCTION-NAME must return the new (or same) ;;; function. (Unlike other functions to set stuff, it does not return ;;; the new value.) -;;; -;;; FIXME: A similar operation is done in -;;; TRY-TO-RENAME-INTERPRETED-FUNCTION-AS-MACRO. The code should be -;;; shared. (defun set-function-name (fcn new-name) #+sb-doc "Set the name of a compiled function object. Return the function." @@ -171,15 +167,10 @@ (typep fcn 'generic-function) (eq (class-of fcn) *the-class-standard-generic-function*)) (setf (sb-kernel:%funcallable-instance-info fcn 1) new-name) - (etypecase fcn - (sb-kernel:byte-closure - (set-function-name (sb-kernel:byte-closure-function fcn) - new-name)) - (sb-kernel:byte-function - (setf (sb-kernel:byte-function-name fcn) new-name)) - #+sb-interpreter - (sb-eval:interpreted-function - (setf (sb-eval:interpreted-function-name fcn) new-name)))) + (error 'simple-type-error + :datum fcn + :expected-type 'generic-function + :format-control "internal error: bad function type")) fcn) (t ;; pw-- This seems wrong and causes trouble. Tests show @@ -304,14 +295,14 @@ (sb-kernel:dsd-name slotd)) (defun structure-slotd-accessor-symbol (slotd) - (sb-kernel:dsd-accessor slotd)) + (sb-kernel:dsd-accessor-name slotd)) (defun structure-slotd-reader-function (slotd) - (fdefinition (sb-kernel:dsd-accessor slotd))) + (fdefinition (sb-kernel:dsd-accessor-name slotd))) (defun structure-slotd-writer-function (slotd) (unless (sb-kernel:dsd-read-only slotd) - (fdefinition `(setf ,(sb-kernel:dsd-accessor slotd))))) + (fdefinition `(setf ,(sb-kernel:dsd-accessor-name slotd))))) (defun structure-slotd-type (slotd) (sb-kernel:dsd-type slotd))