Subject: bug#13007: 24.3.50; emacs_backtrace.txt

From: Eli Zaretskii <[email-masked]>
Date: Wed, 28 Nov 2012 19:59:08 +0200

> Date: Wed, 28 Nov 2012 19:51:37 +0400
> From: Dmitry Antipov <[email-masked]>
> CC: Juanma Barranquero <[email-masked]>, 
>  Drew Adams <[email-masked]>,
>  Eli Zaretskii <[email-masked]>
> 
> OK. Your crash recipe from Bug#13012 (which I can reproduce) hits the
> corner case where XBUFFER (XWINDOW (selected_window)->buffer) !=
> current_buffer; this should be fixed by always examining window buffer
> instead of current.

The display engine assumes that the buffer being rendered is
current_buffer in a lot of places.  If you want to use w->buffer
instead, you will have to change many places, including those that
don't receive a pointer to the window being redisplayed.  (And there's
the TTY redisplay which is frame-based, and doesn't necessarily go by
windows in the first place.)

Let me turn the table and ask why should we insist on this assertion?
What do we gain by enforcing it?

I know what we lose: the trunk is severely broken for 2 days, and
counting.  3 people have independently bumped into this in 2 different
situations.  If there's no significant gain in this, I say let's
remove the assertion and move on.