X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fentry.lisp;h=5f955ee78e23c49f9df5c73e50570522a3516cbd;hb=b63c4fb9b98fa8188e17ba926e150ba417a74635;hp=6fdd25e95feb008d5bc367d57eff2ad013fbde6c;hpb=66187cb2c39eb11c33451c64d90a644961fd0b46;p=sbcl.git diff --git a/src/compiler/entry.lisp b/src/compiler/entry.lisp index 6fdd25e..5f955ee 100644 --- a/src/compiler/entry.lisp +++ b/src/compiler/entry.lisp @@ -36,8 +36,10 @@ (declare (type clambda fun) (type entry-info info)) (let ((bind (lambda-bind fun)) (internal-fun (functional-entry-fun fun))) - (setf (entry-info-closure-p info) - (not (null (physenv-closure (lambda-physenv fun))))) + (setf (entry-info-closure-tn info) + (if (physenv-closure (lambda-physenv fun)) + (make-normal-tn *backend-t-primitive-type*) + nil)) (setf (entry-info-offset info) (gen-label)) (setf (entry-info-name info) (leaf-debug-name internal-fun)) @@ -87,7 +89,9 @@ (setq res t)) (t (setf (ref-leaf ref) new) - (push ref (leaf-refs new))))))))) + (push ref (leaf-refs new)) + (setf (leaf-refs lambda) + (delq ref (leaf-refs lambda)))))))))) (:toplevel (setq res t)))) res))