summaryrefslogtreecommitdiff
path: root/lisp
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
commit2b29a37688ebdfc4725d2fd075d3639da81ea8c8 (patch)
tree17a2b0b3669e7dbbe5f365e568bb60c5cb6f4914 /lisp
parent7f4d3657161068861dccbcc6c009922ce4a18097 (diff)
downloademacs-2b29a37688ebdfc4725d2fd075d3639da81ea8c8.tar.gz
(byte-compile-inline-expand): Fetch actual bytecode
before inlining a lazy function.
Diffstat (limited to 'lisp')
-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)))))))