X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fdfo.lisp;h=8ee0621c00a689473391d72505eb78749fa31723;hb=74cf7a4d01664fbf72a662ba093ad67ca243b524;hp=763d929b4e20c399a7c9a0bede20e8fbcba84785;hpb=c2431e2d0d0222a3cf20cfdfa48201bdcc65cd76;p=sbcl.git diff --git a/src/compiler/dfo.lisp b/src/compiler/dfo.lisp index 763d929..8ee0621 100644 --- a/src/compiler/dfo.lisp +++ b/src/compiler/dfo.lisp @@ -190,7 +190,10 @@ (home-kind (functional-kind home)) (home-externally-visible-p (or (eq home-kind :toplevel) - (functional-has-external-references-p home)))) + (functional-has-external-references-p home) + (let ((entry (functional-entry-fun home))) + (and entry + (functional-has-external-references-p entry)))))) (unless (or (and home-externally-visible-p (eq (functional-kind fun) :external)) (eq home-kind :deleted)) @@ -290,7 +293,7 @@ (declare (type entry entry)) (let ((entry-home (node-home-lambda entry))) (scavenge-possibly-deleted-lambda entry-home)))) - (dolist (cc (lambda-calls-or-closes clambda)) + (do-sset-elements (cc (lambda-calls-or-closes clambda)) (etypecase cc (clambda (scavenge-call cc)) (lambda-var (scavenge-closure-var cc))