bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#20718: 25.0.50; find-function fails on advised subrs (again)


From: Stefan Monnier
Subject: bug#20718: 25.0.50; find-function fails on advised subrs (again)
Date: Thu, 04 Jun 2015 11:55:32 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

> Something like the patch below should fix it, but then the function
> returns a #<subr> object, instead of function symbol, and several callers
> seem to depend on the return value being the latter (because they want to
> call symbol-function on it).

Indeed, even its docstring says that it returns "the original function
symbol", and that's basically meaningless in general (and in the
nadvice case in particular).

So the callers will need to be adjusted.


        Stefan


> diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
> index 7ea13d4..75fdfc7 100644
> --- a/lisp/emacs-lisp/find-func.el
> +++ b/lisp/emacs-lisp/find-func.el
> @@ -192,9 +192,9 @@ defined in C.")
>    "Return the original function symbol of an advised function FUNC.
>  If FUNC is not the symbol of an advised function, just returns FUNC."
>    (or (and (symbolp func)
> -        (featurep 'advice)
> -        (let ((ofunc (cdr (assq 'origname (ad-get-advice-info func)))))
> -          (and (fboundp ofunc) ofunc)))
> +        (featurep 'nadvice)
> +        (let ((ofunc (advice--symbol-function func)))
> +          (and (advice--p ofunc) (advice--cd*r ofunc))))
>        func))

>  (defun find-function-C-source (fun-or-var file type)








reply via email to

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