mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-13 03:06:23 -08:00
cl-generic.el: Fix bug#46722
Fix longstanding bug due to unexpected interference via side-effect.
* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher):
Copy the `dispatch` arg before storing it into the hash-table.
Backport from `master` (cherrypick from commit 61f8f7f68f).
This commit is contained in:
parent
8c71ac606e
commit
4161a36849
1 changed files with 3 additions and 1 deletions
|
|
@ -602,7 +602,9 @@ The set of acceptable TYPEs (also called \"specializers\") is defined
|
|||
|
||||
(defun cl--generic-get-dispatcher (dispatch)
|
||||
(cl--generic-with-memoization
|
||||
(gethash dispatch cl--generic-dispatchers)
|
||||
;; We need `copy-sequence` here because this `dispatch' object might be
|
||||
;; modified by side-effect in `cl-generic-define-method' (bug#46722).
|
||||
(gethash (copy-sequence dispatch) cl--generic-dispatchers)
|
||||
;; (message "cl--generic-get-dispatcher (%S)" dispatch)
|
||||
(let* ((dispatch-arg (car dispatch))
|
||||
(generalizers (cdr dispatch))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue