]> git.eshelyaron.com Git - emacs.git/commitdiff
Note that function symbols are preferred in `add-hook'
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 3 May 2021 08:45:30 +0000 (10:45 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 3 May 2021 08:45:30 +0000 (10:45 +0200)
* lisp/subr.el (add-hook): Note that FUNCTION should preferably be
a symbol (bug#47992).

lisp/subr.el

index 964eb8f8ca27ba49befde870b3561b809a178f12..7a055f2ba1e35b12cb1e2e81ac5f2bec5a456fc4 100644 (file)
@@ -1815,9 +1815,15 @@ This makes the hook buffer-local, and it makes t a member of the
 buffer-local value.  That acts as a flag to run the hook
 functions of the global value as well as in the local value.
 
-HOOK should be a symbol, and FUNCTION may be any valid function.  If
-HOOK is void, it is first set to nil.  If HOOK's value is a single
-function, it is changed to a list of functions."
+HOOK should be a symbol.  If HOOK is void, it is first set to
+nil.  If HOOK's value is a single function, it is changed to a
+list of functions.
+
+FUNCTION may be any valid function, but it's recommended to use a
+function symbol and not a lambda form.  Using a symbol will
+ensure that the function is not re-added if the function is
+edited, and using lambda forms may also have a negative
+performance impact when running `add-hook' and `remove-hook'."
   (or (boundp hook) (set hook nil))
   (or (default-boundp hook) (set-default hook nil))
   (unless (numberp depth) (setq depth (if depth 90 0)))