Initialize edebug-offset-indices to a cons, not nil. Fixes bug #16184.

This is because there are times when this variable is changed by setcar before
an atom is pushed onto it by debug-enter.  This happens, for example, whilst
instrumenting c-font-lock-declarations in .../lisp/progmodes/cc-fonts.el.

* lisp/emacs-lisp/edebug.el (edebug-offset-indices): initialize to '(0).
This commit is contained in:
Alan Mackenzie 2016-12-29 09:22:36 +00:00
parent 112460da70
commit 0d19e69184

View file

@ -2052,11 +2052,14 @@ 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 nil)
(defvar edebug-offset-indices (list 0))
;; 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.