[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 4dba7c31a2 2/5: Use `advice--cd*r` where applicable
From: |
Stefan Monnier |
Subject: |
master 4dba7c31a2 2/5: Use `advice--cd*r` where applicable |
Date: |
Tue, 26 Apr 2022 17:36:18 -0400 (EDT) |
branch: master
commit 4dba7c31a225950198482fe1eb558aac7a36d964
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
Use `advice--cd*r` where applicable
* lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature):
* lisp/emacs-lisp/advice.el (ad-get-orig-definition):
* lisp/help.el (help-function-arglist): Use `advice--cd*r`.
---
lisp/emacs-lisp/advice.el | 3 +--
lisp/emacs-lisp/bytecomp.el | 2 +-
lisp/help.el | 2 +-
3 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 8e43ae6807..86a42b208e 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -1814,8 +1814,7 @@ Redefining advices affect the construction of an advised
definition."
(if (symbolp function)
(setq function (if (fboundp function)
(advice--strip-macro (symbol-function function)))))
- (while (advice--p function) (setq function (advice--cdr function)))
- function)
+ (advice--cd*r function))
(defun ad-clear-advicefunname-definition (function)
(let ((advicefunname (ad-get-advice-info-field function 'advicefunname)))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 28237d67d2..c0dffe544c 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1439,7 +1439,7 @@ when printing the error message."
(and (eq 'macro (car-safe f)) (setq f (cdr f)))
;; Advice wrappers have "catch all" args, so fetch the actual underlying
;; function to find the real arguments.
- (while (advice--p f) (setq f (advice--cdr f)))
+ (setq f (advice--cd*r f))
(if (eq (car-safe f) 'declared)
(byte-compile-arglist-signature (nth 1 f))
(condition-case nil
diff --git a/lisp/help.el b/lisp/help.el
index c5de59d6bc..2d08ceb86c 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -2039,7 +2039,7 @@ the same names as used in the original source code, when
possible."
(if (and (symbolp def) (fboundp def)) (setq def (indirect-function def)))
;; Advice wrappers have "catch all" args, so fetch the actual underlying
;; function to find the real arguments.
- (while (advice--p def) (setq def (advice--cdr def)))
+ (setq def (advice--cd*r def))
;; If definition is a macro, find the function inside it.
(if (eq (car-safe def) 'macro) (setq def (cdr def)))
(cond