0.7.8.22:
[sbcl.git] / src / pcl / low.lisp
index 7135e5f..dd2295d 100644 (file)
 
 (import 'sb-kernel:funcallable-instance-p)
 
-;;; This "works" on non-PCL FINs, which allows us to weaken
-;;; FUNCALLABLE-INSTANCE-P to return true for all FINs. This is also
-;;; necessary for bootstrapping to work, since the layouts for early
-;;; GFs are not initially initialized.
-(defmacro funcallable-instance-data-1 (fin slot)
-  (ecase (eval slot)
-    (wrapper `(sb-kernel:%funcallable-instance-layout ,fin))
-    (slots `(sb-kernel:%funcallable-instance-info ,fin 0))))
-
-;;; FIXME: Now that we no longer try to make our CLOS implementation
-;;; portable to other implementations of Common Lisp, all the
-;;; funcallable instance wrapper logic here can go away in favor
-;;; of direct calls to native SBCL funcallable instance operations.
 (defun set-funcallable-instance-fun (fin new-value)
   (declare (type function new-value))
   (aver (funcallable-instance-p fin))
   (setf (sb-kernel:funcallable-instance-fun fin) new-value))
 (defmacro fsc-instance-p (fin)
   `(funcallable-instance-p ,fin))
-(defmacro fsc-instance-class (fin)
-  `(wrapper-class (funcallable-instance-data-1 ,fin 'wrapper)))
 (defmacro fsc-instance-wrapper (fin)
-  `(funcallable-instance-data-1 ,fin 'wrapper))
+  `(sb-kernel:%funcallable-instance-layout ,fin))
 (defmacro fsc-instance-slots (fin)
-  `(funcallable-instance-data-1 ,fin 'slots))
+  `(sb-kernel:%funcallable-instance-info ,fin 0))
 \f
 (declaim (inline clos-slots-ref (setf clos-slots-ref)))
 (declaim (ftype (function (simple-vector index) t) clos-slots-ref))