projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.45.22: non-racy RUN-PROGRAM :PTY on OpenBSD
[sbcl.git]
/
src
/
compiler
/
dfo.lisp
diff --git
a/src/compiler/dfo.lisp
b/src/compiler/dfo.lisp
index
763d929
..
8ee0621
100644
(file)
--- 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)
(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))
(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))))
(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))
(etypecase cc
(clambda (scavenge-call cc))
(lambda-var (scavenge-closure-var cc))