1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

* Fix circular dependecy when loading a modified comp.el (bug#47049)

* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Move it
	before other functional code.
This commit is contained in:
Andrea Corallo 2021-03-12 22:19:51 +01:00
parent 82bd6d57d5
commit d018584814

View file

@ -648,6 +648,23 @@ Useful to hook into pass checkers.")
'native-compiler-error)
;; Moved early to avoid circularity when comp.el is loaded and
;; `macroexpand' needs to be advised (bug#47049).
;;;###autoload
(defun comp-subr-trampoline-install (subr-name)
"Make SUBR-NAME effectively advice-able when called from native code."
(unless (or (null comp-enable-subr-trampolines)
(memq subr-name comp-never-optimize-functions)
(gethash subr-name comp-installed-trampolines-h))
(cl-assert (subr-primitive-p (symbol-function subr-name)))
(comp--install-trampoline
subr-name
(or (comp-trampoline-search subr-name)
(comp-trampoline-compile subr-name)
;; Should never happen.
(cl-assert nil)))))
(cl-defstruct (comp-vec (:copier nil))
"A re-sizable vector like object."
(data (make-hash-table :test #'eql) :type hash-table
@ -3743,20 +3760,6 @@ Return the trampoline if found or nil otherwise."
finally (error "Cannot find suitable directory for output in \
`comp-eln-load-path'")))))
;;;###autoload
(defun comp-subr-trampoline-install (subr-name)
"Make SUBR-NAME effectively advice-able when called from native code."
(unless (or (null comp-enable-subr-trampolines)
(memq subr-name comp-never-optimize-functions)
(gethash subr-name comp-installed-trampolines-h))
(cl-assert (subr-primitive-p (symbol-function subr-name)))
(comp--install-trampoline
subr-name
(or (comp-trampoline-search subr-name)
(comp-trampoline-compile subr-name)
;; Should never happen.
(cl-assert nil)))))
;; Some entry point support code.