[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#46722: test-map-into fails
From: |
Stefan Monnier |
Subject: |
bug#46722: test-map-into fails |
Date: |
Wed, 05 Jan 2022 12:51:09 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
I think I tracked it down.
The patch below should fix it. Boy do I hate side effects!
Could others confirm that it fixes the problem for them as well?
Eli, do you think this is appropriate for `emacs-28`?
OT1H this bug probably has been with us since Emacs-25, but OTOH the
patch should be very safe.
Stefan
PS: We don't need the `copy-sequence` when we do the actual `gethash`,
we only need it if that `gethash` returns nil and we end up putting
a new entry in the hash-table, but avoiding those extra `copy-sequence`
requires manually macroexpanding `with-memoization`, so I favored
keeping the patch as short as possible.
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 983694204df..5090e060372 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -604,7 +604,9 @@ cl--generic-dispatchers
(defun cl--generic-get-dispatcher (dispatch)
(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))
- bug#46722: test-map-into fails, dick, 2022/01/04
- bug#46722: test-map-into fails, Stefan Monnier, 2022/01/05
- bug#46722: test-map-into fails, dick, 2022/01/05
- bug#46722: test-map-into fails, Stefan Monnier, 2022/01/05
- bug#46722: test-map-into fails,
Stefan Monnier <=
- bug#46722: test-map-into fails, Eli Zaretskii, 2022/01/05
- bug#46722: test-map-into fails, Stefan Monnier, 2022/01/05
- bug#46722: test-map-into fails, Philipp Stephani, 2022/01/13
- bug#46722: test-map-into fails, Stefan Monnier, 2022/01/13
- bug#46722: test-map-into fails, Philipp Stephani, 2022/01/13
- bug#46722: test-map-into fails, Lars Ingebrigtsen, 2022/01/14
- bug#46722: test-map-into fails, Philipp Stephani, 2022/01/14
- bug#46722: test-map-into fails, Lars Ingebrigtsen, 2022/01/15
- bug#46722: test-map-into fails, Philipp Stephani, 2022/01/15
- bug#46722: test-map-into fails, Stefan Monnier, 2022/01/15