diff options
| author | Karl Heuer | 1995-04-05 03:04:02 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-04-05 03:04:02 +0000 |
| commit | 2b29a37688ebdfc4725d2fd075d3639da81ea8c8 (patch) | |
| tree | 17a2b0b3669e7dbbe5f365e568bb60c5cb6f4914 | |
| parent | 7f4d3657161068861dccbcc6c009922ce4a18097 (diff) | |
| download | emacs-2b29a37688ebdfc4725d2fd075d3639da81ea8c8.tar.gz emacs-2b29a37688ebdfc4725d2fd075d3639da81ea8c8.zip | |
(byte-compile-inline-expand): Fetch actual bytecode
before inlining a lazy function.
| -rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 8 |
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 @@ | |||
| 221 | (if (symbolp fn) | 221 | (if (symbolp fn) |
| 222 | (byte-compile-inline-expand (cons fn (cdr form))) | 222 | (byte-compile-inline-expand (cons fn (cdr form))) |
| 223 | (if (byte-code-function-p fn) | 223 | (if (byte-code-function-p fn) |
| 224 | (cons (list 'lambda (aref fn 0) | 224 | (progn |
| 225 | (list 'byte-code (aref fn 1) (aref fn 2) (aref fn 3))) | 225 | (fetch-bytecode fn) |
| 226 | (cdr form)) | 226 | (cons (list 'lambda (aref fn 0) |
| 227 | (list 'byte-code (aref fn 1) (aref fn 2) (aref fn 3))) | ||
| 228 | (cdr form))) | ||
| 227 | (if (not (eq (car fn) 'lambda)) (error "%s is not a lambda" name)) | 229 | (if (not (eq (car fn) 'lambda)) (error "%s is not a lambda" name)) |
| 228 | (cons fn (cdr form))))))) | 230 | (cons fn (cdr form))))))) |
| 229 | 231 | ||