GNU bug report logs -
#13007
24.3.50; emacs_backtrace.txt
Previous Next
Full log
Message #28 received at 13007 <at> debbugs.gnu.org (full text, mbox):
On 11/27/2012 07:14 PM, Eli Zaretskii wrote:
> The crash is due to assertion violation here:
>
> static int
> window_outdated (struct window *w)
> {
> eassert (XBUFFER (w->buffer) == current_buffer); <<<<<<<<<<<<<<<<<<
> return (w->last_modified < MODIFF
> || w->last_overlay_modified < OVERLAY_MODIFF);
> }
>
> Dmitry, why did you add this assertion? What code that you introduced
> assumes that this condition is always true?
This eassert was installed just to trap on the suspicious use cases as we found
in this bug :-).
> I suspect that we need to change this assertion to
>
> eassert (MINI_WINDOW_P (w) || w->pseudo_window_p
> || XBUFFER (w->buffer) == current_buffer);
>
> At least in this case (see the backtrace below), window_outdated is
> called from code that handles minibuffer windows, so I'm guessing the
> above assertion is not true.
Hm... this really helps to bypass eassert, but:
1) is it meaningful to compare w->last_modified of minibuffer window with
MODIFF? Shouldn't we compare it against BUFF_MODIFF of appropriate minibuffer?
2) is it possible to have an overlay in a minibuffer?
3) should window_outdated_p be applicable to pseudowindows at all?
Dmitry
This bug report was last modified 9 years and 199 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.