[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 103039b: * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper):
From: |
Stefan Monnier |
Subject: |
master 103039b: * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Reinstate. |
Date: |
Sat, 13 Feb 2021 19:24:47 -0500 (EST) |
branch: master
commit 103039b06c2c9a917fc796d2a4afda8433e37473
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Reinstate.
Removed by accident.
---
lisp/emacs-lisp/edebug.el | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 76fb190..8fadeba 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1240,6 +1240,33 @@ purpose by adding an entry to this alist, and setting
(defvar edebug--cl-macrolet-defs) ;; Fully defined below.
+(defun edebug-make-enter-wrapper (forms)
+ ;; Generate the enter wrapper for some forms of a definition.
+ ;; This is not to be used for the body of other forms, e.g. `while',
+ ;; since it wraps the list of forms with a call to `edebug-enter'.
+ ;; Uses the dynamically bound vars edebug-def-name and edebug-def-args.
+ ;; Do this after parsing since that may find a name.
+ (when (string-match-p (rx bos "edebug-anon" (+ digit) eos)
+ (symbol-name edebug-old-def-name))
+ ;; FIXME: Due to Bug#42701, we reset an anonymous name so that
+ ;; backtracking doesn't generate duplicate definitions. It would
+ ;; be better to not define wrappers in the case of a non-matching
+ ;; specification branch to begin with.
+ (setq edebug-old-def-name nil))
+ (setq edebug-def-name
+ (or edebug-def-name edebug-old-def-name (gensym "edebug-anon")))
+ `(edebug-enter
+ (quote ,edebug-def-name)
+ ,(if edebug-inside-func
+ `(list
+ ;; Doesn't work with more than one def-body!!
+ ;; But the list will just be reversed.
+ ,@(nreverse edebug-def-args))
+ 'nil)
+ (function (lambda () ,@forms))
+ ))
+
+
(defvar edebug-form-begin-marker) ; the mark for def being instrumented
(defvar edebug-offset-index) ; the next available offset index.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 103039b: * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Reinstate.,
Stefan Monnier <=