bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13007: 24.3.50; emacs_backtrace.txt


From: Dmitry Antipov
Subject: bug#13007: 24.3.50; emacs_backtrace.txt
Date: Thu, 29 Nov 2012 21:23:37 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0

On 11/29/2012 08:46 PM, Eli Zaretskii wrote:

For starters, can you tell what triggered the assertion violation in
Juanma's case?  IOW, how did we wind up in a situation where (AFAIU)
the selected window displays a buffer other than the current one?

IIUC, here is the sequence:

Function set_window_buffer (W, B, ...) is called where W is selected_window
and XBUFFER (B) != current_buffer. This function temporary sets current
buffer to XBUFFER (B) to run hooks, and then restore old current_buffer [1].
So, on exit we have XBUFFER (XWINDOW (selected_window)->buffer) != 
current_buffer,
and these gets _finally_ synchronized only when read_key_sequence is called with
fix_current_buffer == true [2]. If redisplay is invoked between [1] and [2],
its routines may see the condition which was eassert'ed; _finally_ means
that some redisplay routines may do the synchronization temporary and
then restore original value of current buffer (see pos_visible_p for example).

Dmitry







reply via email to

[Prev in Thread] Current Thread [Next in Thread]