summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 15:29:56 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 15:29:56 +0200
commit1ec26f360406dad0f0b065ebcc8359bed3c78963 (patch)
treed9cb438564a04beb3b923c3e847bc2fe3bef0182
parent8b10a703fa46c052ddd5798914aa16c812408bf4 (diff)
Optimize PREPARE-FUNCTION-REF.
-rw-r--r--sb-eval2.lisp8
1 files changed, 5 insertions, 3 deletions
diff --git a/sb-eval2.lisp b/sb-eval2.lisp
index 7ee46c5..ffaf0bd 100644
--- a/sb-eval2.lisp
+++ b/sb-eval2.lisp
@@ -233,9 +233,11 @@
(offset (lexical-offset lexical)))
(lambda (env)
(environment-value env nesting offset)))
- (lambda (env)
- (declare (ignore env))
- (fdefinition function-name))))
+ (let ((f* (sb-c::fdefinition-object function-name t)))
+ (lambda (env)
+ (declare (ignore env))
+ (or (sb-c::fdefn-fun f*)
+ (error 'undefined-function :name function-name))))))