]> git.eshelyaron.com Git - emacs.git/commitdiff
; * lisp/help-fns.el: Speed up `describe-mode'
authorOri <ori@oribarbut.com>
Thu, 15 Jul 2021 16:57:38 +0000 (18:57 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 15 Jul 2021 16:57:38 +0000 (18:57 +0200)
* lisp/help-fns.el (help-fns--list-local-commands): Speed up (bug#49579).

A predicate checks if there are no key bindings for a given function. A
full list of bindings is not needed, even a single binding is sufficient
to say the function is bound. Set FIRSTONLY arg in where-is-internal so
this predicate runs faster, with functional equivalence. For some
configurations this has a noticeable improvement on the speed of
describe-mode.

Copyright-paperwork-exempt: yes

lisp/help-fns.el

index d3fdb47a3484840b6b360eb7557e93bfa4c1d16b..cb248b1d00914b8fbf1131999f35861f57b6c511 100644 (file)
@@ -1901,7 +1901,7 @@ documentation for the major and minor modes of that buffer."
                   ;; Ignore aliases.
                   (not (symbolp (symbol-function sym)))
                   ;; Ignore everything bound.
-                  (not (where-is-internal sym))
+                  (not (where-is-internal sym nil t))
                   (apply #'derived-mode-p (command-modes sym)))
          (push sym functions))))
     (with-temp-buffer