X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=ebc963c9c8e5ce3248e1b11681088ccf0fdb05d3;hb=ec2e02db335d1545b3c18233bf440ca4160f780d;hp=db050bc394ed0fe77123a64caf3e683acb36bfb1;hpb=d3e5c969e4b951834b2fe9ca9b799b1dab4dc8e6;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index db050bc..ebc963c 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -52,12 +52,13 @@ (emit-move-template node block (type-check-template type) value result) (values)) -;;; Allocate an indirect value cell. Maybe do some clever stack -;;; allocation someday. +;;; Allocate an indirect value cell. (defevent make-value-cell-event "Allocate heap value cell for lexical var.") (defun emit-make-value-cell (node block value res) (event make-value-cell-event node) - (vop make-value-cell node block value res)) + (let ((leaf (tn-leaf res))) + (vop make-value-cell node block value (and leaf (leaf-dynamic-extent leaf)) + res))) ;;;; leaf reference