aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/byte-opt.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 90154728f34..cbfc5c7d800 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -279,10 +279,13 @@
279 (if (symbolp fn) 279 (if (symbolp fn)
280 (byte-compile-inline-expand (cons fn (cdr form))) 280 (byte-compile-inline-expand (cons fn (cdr form)))
281 (if (byte-code-function-p fn) 281 (if (byte-code-function-p fn)
282 (progn 282 (let (string)
283 (fetch-bytecode fn) 283 (fetch-bytecode fn)
284 (setq string (aref fn 1))
285 (if (fboundp 'string-as-unibyte)
286 (setq string (string-as-unibyte string)))
284 (cons (list 'lambda (aref fn 0) 287 (cons (list 'lambda (aref fn 0)
285 (list 'byte-code (aref fn 1) (aref fn 2) (aref fn 3))) 288 (list 'byte-code string (aref fn 2) (aref fn 3)))
286 (cdr form))) 289 (cdr form)))
287 (if (not (eq (car fn) 'lambda)) (error "%s is not a lambda" name)) 290 (if (not (eq (car fn) 'lambda)) (error "%s is not a lambda" name))
288 (cons fn (cdr form))))))) 291 (cons fn (cdr form)))))))