X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=5adc631a491f6a19bef8ed01f4d0afdf9a00c87b;hb=3a2e34d8ed1293f2cecb5c2c6ea359b622e3f4f8;hp=30041ce9b3d85f77fd26e3e2cdbcf518b915d9da;hpb=d604a358d8e5eb5587989e0a4f1d31dbe6ac5ffe;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index 30041ce..5adc631 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -1138,8 +1138,9 @@ (if (ir2-physenv-closure env) (let ((closure (make-normal-tn *backend-t-primitive-type*))) (vop setup-closure-environment node block start-label closure) - (when (getf (functional-plist ef) :fin-function) - (vop funcallable-instance-lexenv node block closure closure)) + ;; KLUDGE: see the comment around the definition of + ;; CLOSURE objects in src/compiler/objdef.lisp + (vop funcallable-instance-lexenv node block closure closure) (let ((n -1)) (dolist (loc (ir2-physenv-closure env)) (vop closure-ref node block closure (incf n) (cdr loc)))))