emacs-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]