(setf (block-number block) (incf num))
(setf (block-delete-p block) t)))
(do-blocks (block component)
- (unless (block-flag block)
+ (when (block-delete-p block)
(delete-block block))))
(values))
(unless (eq old-next old-tail)
(setf (block-next head) old-next)
(setf (block-prev old-next) head)
-
+
(setf (block-prev next) old-last)
(setf (block-next old-last) next))
;; is always a preceding REF NIL node in top level lambdas.
(let ((return (lambda-return lambda)))
(when return
- (let ((return-block (node-block return))
- (result (return-result return)))
- (setf (block-last return-block) (continuation-use result))
- (flush-dest result)
- (delete-continuation result)
- (link-blocks return-block result-return-block))))))
+ (link-blocks (node-block return) result-return-block)
+ (flush-dest (return-result return))
+ (unlink-node return)))))
;;; Given a non-empty list of top level LAMBDAs, smash them into a
;;; top level lambda and component, returning these as values. We use