[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'as
From: |
Eli Zaretskii |
Subject: |
bug#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)' |
Date: |
Sun, 18 Mar 2018 16:05:37 +0200 |
> From: Noam Postavsky <npostavs@gmail.com>
> Date: Sun, 18 Mar 2018 09:10:41 -0400
>
> Evaluate the following from 'emacs -Q':
>
> (setq-local foo 1)
>
> ;; Simulate (debug-watch 'foo) + continue from *Backtrace*
> (add-variable-watcher 'foo (lambda (symbol newval operation where)
> (with-temp-buffer
> (kill-all-local-variables))))
> (fundamental-mode)
>
> This results in
>
> ../../src/data.c:98: Emacs fatal error: assertion failed: found == !EQ
> (blv->defcell, blv->valcell)
>
> Backtrace attached. I guess it has something to do with the recursive
> `kill-all-local-variables' call, although I'm not familiar enough with
> the local variable machinery to say more about it.
Do you mean that the inner call to kill-all-local-variables steps on
toes of the outer call, and thus corrupts the local values or
something? If so, do you see any signs of such a corruption?
bug#30846: 26.0.91; debug-watch of kill-all-local-variables triggers 'assertion failed: found == !EQ (blv->defcell, blv->valcell)', Stefan Monnier, 2018/03/22