* lisp/emacs-lisp/nadvice.el (advice--member-p): Return the advice if found.
(advice--add-function): Refresh the advice if already present. Fixes: debbugs:14317
This commit is contained in:
parent
7a6018ad21
commit
c67c08396a
2 changed files with 13 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2013-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/nadvice.el (advice--member-p): Return the advice if found.
|
||||
(advice--add-function): Refresh the advice if already present
|
||||
(bug#14317).
|
||||
|
||||
2013-05-06 Ivan Andrus <darthandrus@gmail.com>
|
||||
|
||||
* find-file.el (cc-other-file-alist): Add ".m" for ObjC. (Bug#14339)
|
||||
|
|
|
@ -167,7 +167,7 @@ WHERE is a symbol to select an entry in `advice--where-alist'."
|
|||
(if (or (equal function (advice--car definition))
|
||||
(when name
|
||||
(equal name (cdr (assq 'name (advice--props definition))))))
|
||||
(setq found t)
|
||||
(setq found definition)
|
||||
(setq definition (advice--cdr definition))))
|
||||
found))
|
||||
|
||||
|
@ -260,8 +260,12 @@ is also interactive. There are 3 cases:
|
|||
|
||||
;;;###autoload
|
||||
(defun advice--add-function (where ref function props)
|
||||
(unless (advice--member-p function (cdr (assq 'name props))
|
||||
(gv-deref ref))
|
||||
(let ((a (advice--member-p function (cdr (assq 'name props))
|
||||
(gv-deref ref))))
|
||||
(when a
|
||||
;; The advice is already present. Remove the old one, first.
|
||||
(setf (gv-deref ref)
|
||||
(advice--remove-function (gv-deref ref) (advice--car a))))
|
||||
(setf (gv-deref ref)
|
||||
(advice--make where function (gv-deref ref) props))))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue