Give eval-and-compile a correct edebug spec. Fixes bug #16184 properly.

* lisp/emacs-lisp/edebug.el (edebug_offset_indices): Revert abortive commit
from Thu Dec 29 09:22:36 2016 +0000 which didn't really fix the bug.

* lisp/emacs-lisp/byte-run.el (eval-and-compile): Change the edebug spec from
t to (&rest def-form).
This commit is contained in:
Alan Mackenzie 2017-01-01 08:28:04 +00:00
parent 535ef18ed5
commit 620e5a3cd4
2 changed files with 4 additions and 7 deletions

View file

@ -474,7 +474,7 @@ load time. In interpreted code, this is entirely equivalent to
`progn', except that the value of the expression may be (but is
not necessarily) computed at load time if eager macro expansion
is enabled."
(declare (debug t) (indent 0))
(declare (debug (&rest def-form)) (indent 0))
;; When the byte-compiler expands code, this macro is not used, so we're
;; either about to run `body' (plain interpretation) or we're doing eager
;; macroexpansion.

View file

@ -2052,14 +2052,11 @@ expressions; a `progn' form will be returned enclosing these forms."
(defvar edebug-stack-depth -1)
;; Index of last edebug-stack item.
(defvar edebug-offset-indices (list 0))
(defvar edebug-offset-indices nil)
;; Stack of offset indices of visited edebug sexps.
;; Should be nil at the top level.
;; Each function adds one cons. Top is modified with setcar.
;; Should be nil at the top level. No longer! There are occasions
;; when this variable is modified by setcar before a cons has been
;; pushed by `edebug-enter', e.g. when instrumenting
;; `c-font-lock-declarations' in .../lisp/progmodes/cc-fonts.el. So
;; this variable must be initialized to a cons.
(defvar edebug-entered nil
;; Non-nil if edebug has already been entered at this recursive edit level.