(make-room-info :name 'instance
:kind :instance))
+(setf (svref *meta-room-info* funcallable-instance-header-widetag)
+ (make-room-info :name 'funcallable-instance
+ :kind :closure))
+
) ; EVAL-WHEN
(defparameter *room-info* '#.*meta-room-info*)
#!-sb-fluid (declaim (maybe-inline map-allocated-objects))
(defun map-allocated-objects (fun space &optional careful)
(declare (type function fun) (type spaces space))
+ (declare (optimize (sb!c:alien-funcall-saves-fp-and-pc 0)))
(flet ((make-obj (tagged-address)
(if careful
(make-lisp-obj tagged-address nil)
list-pointer-lowtag
(* cons-size n-word-bytes)
ok)))
- ((eql header-widetag closure-header-widetag)
+ ((eq (room-info-kind info) :closure)
(let* ((obj (%make-lisp-obj (logior (sap-int current)
fun-pointer-lowtag)))
(size (round-to-dualword