edebug.el: Fix `edebug-remove-instrumentation` (bug#70791)
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 6 May 2024 18:33:43 +0000 (14:33 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 6 May 2024 18:33:43 +0000 (14:33 -0400)
* lisp/emacs-lisp/edebug.el (edebug-unwrap*): Traverse interpreted
functions.

lisp/emacs-lisp/edebug.el

index 3414bb592c0ccc5e48e5c2b7b4f682b91e6dc544..381b7964a353980ad3581ee23a829678a4a01944 100644 (file)
@@ -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)))