summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1995-04-05 03:04:02 +0000
committerKarl Heuer <kwzh@gnu.org>1995-04-05 03:04:02 +0000
commit1af249463bd91758d236b6e3bb7eca0affd3285b (patch)
tree81ebdd770ae948435fc582ef46ddeb1fce214b22
parent8df0f1aa7846d4b8e823876b83e20cad0b673f86 (diff)
downloademacs-1af249463bd91758d236b6e3bb7eca0affd3285b.tar.gz
(byte-compile-inline-expand): Fetch actual bytecode
before inlining a lazy function.
-rw-r--r--lisp/emacs-lisp/byte-opt.el8
1 files changed, 5 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 7bfa75dbaaf..1d394511c96 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -221,9 +221,11 @@
(if (symbolp fn)
(byte-compile-inline-expand (cons fn (cdr form)))
(if (byte-code-function-p fn)
- (cons (list 'lambda (aref fn 0)
- (list 'byte-code (aref fn 1) (aref fn 2) (aref fn 3)))
- (cdr form))
+ (progn
+ (fetch-bytecode fn)
+ (cons (list 'lambda (aref fn 0)
+ (list 'byte-code (aref fn 1) (aref fn 2) (aref fn 3)))
+ (cdr form)))
(if (not (eq (car fn) 'lambda)) (error "%s is not a lambda" name))
(cons fn (cdr form)))))))