summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2005-07-11 04:05:39 +0000
committerRichard M. Stallman <rms@gnu.org>2005-07-11 04:05:39 +0000
commit3cc9e6d8176a8dd38f88792dbbebd0f3570e2912 (patch)
treeb8b48f5939a3e7ce1147e3816ba5b7f4018ff0b5 /lisp/emacs-lisp
parentd2dafb85a5468d81d357f1969525d6b60581b704 (diff)
downloademacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.tar.gz
emacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.tar.bz2
emacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.zip
(edebug-slow-after, edebug-slow-before): Do nothing if edebug-active.
(edebug-enter): Don't do with-timeout-suspend here. (edebug-display): Do it here instead.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/edebug.el61
1 files changed, 32 insertions, 29 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 72046399352..1a592709819 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -2244,7 +2244,6 @@ error is signaled again."
(max-specpdl-size (+ 200 max-specpdl-size))
(debugger edebug-debugger) ; only while edebug is active.
- (edebug-with-timeout-suspend (with-timeout-suspend))
(edebug-outside-debug-on-error debug-on-error)
(edebug-outside-debug-on-quit debug-on-quit)
;; Binding these may not be the right thing to do.
@@ -2290,7 +2289,6 @@ error is signaled again."
(edebug-enter edebug-function edebug-args edebug-body))
;; Reset global variables in case outside value was changed.
(setq executing-kbd-macro edebug-outside-executing-macro)
- (with-timeout-unsuspend edebug-with-timeout-suspend)
(edebug-restore-status
'post-command-hook edebug-outside-post-command-hook)
(edebug-restore-status
@@ -2376,18 +2374,19 @@ MSG is printed after `::::} '."
(defun edebug-slow-before (edebug-before-index)
- ;; Debug current function given BEFORE position.
- ;; Called from functions compiled with edebug-eval-top-level-form.
- ;; Return the before index.
- (setcar edebug-offset-indices edebug-before-index)
-
- ;; Increment frequency count
- (aset edebug-freq-count edebug-before-index
- (1+ (aref edebug-freq-count edebug-before-index)))
-
- (if (or (not (memq edebug-execution-mode '(Go-nonstop next)))
- (edebug-input-pending-p))
- (edebug-debugger edebug-before-index 'before nil))
+ (unless edebug-active
+ ;; Debug current function given BEFORE position.
+ ;; Called from functions compiled with edebug-eval-top-level-form.
+ ;; Return the before index.
+ (setcar edebug-offset-indices edebug-before-index)
+
+ ;; Increment frequency count
+ (aset edebug-freq-count edebug-before-index
+ (1+ (aref edebug-freq-count edebug-before-index)))
+
+ (if (or (not (memq edebug-execution-mode '(Go-nonstop next)))
+ (edebug-input-pending-p))
+ (edebug-debugger edebug-before-index 'before nil)))
edebug-before-index)
(defun edebug-fast-before (edebug-before-index)
@@ -2395,22 +2394,24 @@ MSG is printed after `::::} '."
)
(defun edebug-slow-after (edebug-before-index edebug-after-index edebug-value)
- ;; Debug current function given AFTER position and VALUE.
- ;; Called from functions compiled with edebug-eval-top-level-form.
- ;; Return VALUE.
- (setcar edebug-offset-indices edebug-after-index)
-
- ;; Increment frequency count
- (aset edebug-freq-count edebug-after-index
- (1+ (aref edebug-freq-count edebug-after-index)))
- (if edebug-test-coverage (edebug-update-coverage))
-
- (if (and (eq edebug-execution-mode 'Go-nonstop)
- (not (edebug-input-pending-p)))
- ;; Just return result.
+ (if edebug-active
edebug-value
- (edebug-debugger edebug-after-index 'after edebug-value)
- ))
+ ;; Debug current function given AFTER position and VALUE.
+ ;; Called from functions compiled with edebug-eval-top-level-form.
+ ;; Return VALUE.
+ (setcar edebug-offset-indices edebug-after-index)
+
+ ;; Increment frequency count
+ (aset edebug-freq-count edebug-after-index
+ (1+ (aref edebug-freq-count edebug-after-index)))
+ (if edebug-test-coverage (edebug-update-coverage))
+
+ (if (and (eq edebug-execution-mode 'Go-nonstop)
+ (not (edebug-input-pending-p)))
+ ;; Just return result.
+ edebug-value
+ (edebug-debugger edebug-after-index 'after edebug-value)
+ )))
(defun edebug-fast-after (edebug-before-index edebug-after-index edebug-value)
;; Do nothing but return the value.
@@ -2535,6 +2536,7 @@ MSG is printed after `::::} '."
;; Uses local variables of edebug-enter, edebug-before, edebug-after
;; and edebug-debugger.
(let ((edebug-active t) ; for minor mode alist
+ (edebug-with-timeout-suspend (with-timeout-suspend))
edebug-stop ; should we enter recursive-edit
(edebug-point (+ edebug-def-mark
(aref (nth 2 edebug-data) edebug-offset-index)))
@@ -2761,6 +2763,7 @@ MSG is printed after `::::} '."
(set-buffer current-buffer))
;; ... nothing more.
)
+ (with-timeout-unsuspend edebug-with-timeout-suspend)
;; Reset global variables to outside values in case they were changed.
(setq
overlay-arrow-position edebug-outside-o-a-p