summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-generic.el
diff options
context:
space:
mode:
authorPhilip Kaludercic <philipk@posteo.net>2022-10-18 21:53:25 +0200
committerPhilip Kaludercic <philipk@posteo.net>2022-10-18 21:53:25 +0200
commit65fa87329ce577d1ee907c0716b48aac8c0d7d27 (patch)
tree9593429442e7e4fa4f522a9b62a102d9c1cf3fed /lisp/emacs-lisp/cl-generic.el
parent5ceb88e6ebf14cee3f97b0c7b8557e4b1e23de5b (diff)
parentab1b491f8373742a051aaf554c4604f2b976b414 (diff)
downloademacs-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.el6
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)))))