diff options
author | Philip Kaludercic <philipk@posteo.net> | 2022-10-18 21:53:25 +0200 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2022-10-18 21:53:25 +0200 |
commit | 65fa87329ce577d1ee907c0716b48aac8c0d7d27 (patch) | |
tree | 9593429442e7e4fa4f522a9b62a102d9c1cf3fed /lisp/emacs-lisp/cl-generic.el | |
parent | 5ceb88e6ebf14cee3f97b0c7b8557e4b1e23de5b (diff) | |
parent | ab1b491f8373742a051aaf554c4604f2b976b414 (diff) | |
download | emacs-65fa87329ce577d1ee907c0716b48aac8c0d7d27.tar.gz emacs-65fa87329ce577d1ee907c0716b48aac8c0d7d27.tar.bz2 emacs-65fa87329ce577d1ee907c0716b48aac8c0d7d27.zip |
Merge remote-tracking branch 'origin/master' into feature/package+vc
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r-- | lisp/emacs-lisp/cl-generic.el | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index b3ade3b8943..7b6d43e572b 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -650,13 +650,17 @@ The set of acceptable TYPEs (also called \"specializers\") is defined (cl--generic-name generic) qualifiers specializers)) current-load-list :test #'equal) - (let (;; Prevent `defalias' from recording this as the definition site of + (let ((old-adv-cc (get-advertised-calling-convention + (symbol-function sym))) + ;; Prevent `defalias' from recording this as the definition site of ;; the generic function. current-load-list ;; BEWARE! Don't purify this function definition, since that leads ;; to memory corruption if the hash-tables it holds are modified ;; (the GC doesn't trace those pointers). (purify-flag nil)) + (when (listp old-adv-cc) + (set-advertised-calling-convention gfun old-adv-cc nil)) ;; But do use `defalias', so that it interacts properly with nadvice, ;; e.g. for tracing/debug-on-entry. (defalias sym gfun))))) |