;;;; provided with absolutely no warranty. See the COPYING and CREDITS
;;;; files for more information.
-(in-package "SB!EXT")
+(in-package "SB!IMPL")
(defvar *objects-pending-finalization* nil)
(defun finalize (object function)
+ (declare (type function function))
#!+sb-doc
"Arrange for FUNCTION to be called when there are no more references to
OBJECT."
(sb!sys:without-gcing
(setf *objects-pending-finalization*
(delete object *objects-pending-finalization*
- :key #'(lambda (pair)
- (values (weak-pointer-value (car pair))))))))
+ :key (lambda (pair)
+ (values (weak-pointer-value (car pair))))))))
nil)
(defun finalize-corpses ()
(setf *objects-pending-finalization*
- (delete-if #'(lambda (pair)
- (multiple-value-bind (object valid)
- (weak-pointer-value (car pair))
- (declare (ignore object))
- (unless valid
- (funcall (cdr pair))
- t)))
+ (delete-if (lambda (pair)
+ (multiple-value-bind (object valid)
+ (weak-pointer-value (car pair))
+ (declare (ignore object))
+ (unless valid
+ (funcall (the function (cdr pair)))
+ t)))
*objects-pending-finalization*))
nil)