summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/edebug.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2024-05-06 14:33:43 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2024-05-06 14:33:43 -0400
commitf63615208adf2852b9384fe817e930588920a894 (patch)
treeb7c568356629328152c42cd396ca6449d78bbce8 /lisp/emacs-lisp/edebug.el
parent92147d2c9334d3df731562b039cfc26c3486c621 (diff)
downloademacs-f63615208adf2852b9384fe817e930588920a894.tar.gz
emacs-f63615208adf2852b9384fe817e930588920a894.tar.bz2
emacs-f63615208adf2852b9384fe817e930588920a894.zip
edebug.el: Fix `edebug-remove-instrumentation` (bug#70791)
* lisp/emacs-lisp/edebug.el (edebug-unwrap*): Traverse interpreted functions.
Diffstat (limited to 'lisp/emacs-lisp/edebug.el')
-rw-r--r--lisp/emacs-lisp/edebug.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 3414bb592c0..381b7964a35 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1313,6 +1313,12 @@ infinite loops when the code/environment contains a circular object.")
(aref sexp 0) (aref sexp 1)
(vconcat (mapcar #'edebug-unwrap* (aref sexp 2)))
(nthcdr 3 (append sexp ()))))
+ ((interpreted-function-p sexp)
+ (make-interpreted-closure
+ (aref sexp 0) (mapcar #'edebug-unwrap* (aref sexp 1))
+ (mapcar (lambda (x) (if (consp x) (cons (car x) (edebug-unwrap* (cdr x))) x))
+ (aref sexp 2))
+ (documentation sexp 'raw) (interactive-form sexp)))
(t sexp)))