summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/byte-opt.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-03-09 22:48:44 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2011-03-09 22:48:44 -0500
commit6c075cd7c07d8f7f2ae52ab4369e709d7664043e (patch)
tree6b3defb08f7f0cb78f48d7fed4a7ef55d09426bc /lisp/emacs-lisp/byte-opt.el
parent0d6459dfb52188481bfd6bb53f1b2f653ecd6a5d (diff)
downloademacs-6c075cd7c07d8f7f2ae52ab4369e709d7664043e.tar.gz
emacs-6c075cd7c07d8f7f2ae52ab4369e709d7664043e.tar.bz2
emacs-6c075cd7c07d8f7f2ae52ab4369e709d7664043e.zip
Rewrite the cconv conversion algorithm, for clarity.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust check for new byte-code representation. * lisp/emacs-lisp/cconv.el (cconv--convert-function): Rename from cconv-closure-convert-function. (cconv-convert): Rename from cconv-closure-convert-rec. (cconv--analyse-use): Rename from cconv-analyse-use. (cconv--analyse-function): Rename from cconv-analyse-function. (cconv--analyse-use): Change some patterns to silence compiler. (cconv-convert, cconv--convert-function): Rewrite. * test/automated/lexbind-tests.el: New file.
Diffstat (limited to 'lisp/emacs-lisp/byte-opt.el')
-rw-r--r--lisp/emacs-lisp/byte-opt.el3
1 files changed, 1 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 6d6eb68535e..a49218fe02d 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -287,8 +287,7 @@
;; old-style-byte-codes, but not mixed cases (not sure
;; about new-style into new-style).
(not lexical-binding)
- (not (and (>= (length fn) 7)
- (aref fn 6)))) ;6 = COMPILED_PUSH_ARGS
+ (not (integerp (aref fn 0)))) ;New lexical byte-code.
;; (message "Inlining %S byte-code" name)
(fetch-bytecode fn)
(let ((string (aref fn 1)))