Simplify byte-compiler assuming cconv normalisations
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker) (byte-optimize-let-form, byte-optimize-letX): * lisp/emacs-lisp/bytecomp.el (byte-compile-unwind-protect): Simplify source optimisation and codegen code that can now rely on normalised let/let* and unwind-protect forms.
This commit is contained in:
parent
d6600481ae
commit
1ac74e2862
2 changed files with 11 additions and 36 deletions
|
@ -4806,11 +4806,8 @@ binding slots have been popped."
|
|||
(byte-compile-out-tag endtag)))
|
||||
|
||||
(defun byte-compile-unwind-protect (form)
|
||||
(pcase (cddr form)
|
||||
(`(:fun-body ,f)
|
||||
(byte-compile-form f))
|
||||
(handlers
|
||||
(byte-compile-form `#'(lambda () ,@handlers))))
|
||||
(cl-assert (eq (caddr form) :fun-body))
|
||||
(byte-compile-form (nth 3 form))
|
||||
(byte-compile-out 'byte-unwind-protect 0)
|
||||
(byte-compile-form-do-effect (car (cdr form)))
|
||||
(byte-compile-out 'byte-unbind 1))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue