* Don't install unnecessary trampolines (bug#69573) (don't merge)
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Check that subr-name actually matches the target subr.
This commit is contained in:
parent
38faacf353
commit
95d9e6eb6b
1 changed files with 9 additions and 7 deletions
|
@ -714,13 +714,15 @@ This are essential for the trampoline machinery to work properly.")
|
|||
(when (memq subr-name comp-warn-primitives)
|
||||
(warn "Redefining `%s' might break native compilation of trampolines."
|
||||
subr-name))
|
||||
(unless (or (null native-comp-enable-subr-trampolines)
|
||||
(memq subr-name native-comp-never-optimize-functions)
|
||||
(gethash subr-name comp-installed-trampolines-h))
|
||||
(cl-assert (subr-primitive-p (symbol-function subr-name)))
|
||||
(when-let ((trampoline (or (comp-trampoline-search subr-name)
|
||||
(comp-trampoline-compile subr-name))))
|
||||
(comp--install-trampoline subr-name trampoline))))
|
||||
(let ((subr (symbol-function subr-name)))
|
||||
(unless (or (not (string= subr-name (subr-name subr))) ;; (bug#69573)
|
||||
(null native-comp-enable-subr-trampolines)
|
||||
(memq subr-name native-comp-never-optimize-functions)
|
||||
(gethash subr-name comp-installed-trampolines-h))
|
||||
(cl-assert (subr-primitive-p subr))
|
||||
(when-let ((trampoline (or (comp-trampoline-search subr-name)
|
||||
(comp-trampoline-compile subr-name))))
|
||||
(comp--install-trampoline subr-name trampoline)))))
|
||||
|
||||
|
||||
(cl-defstruct (comp-vec (:copier nil))
|
||||
|
|
Loading…
Add table
Reference in a new issue