Subject: Re: bug#14666: 24.3.50; emacs_backtrace.txt

From: Eli Zaretskii <[email-masked]>
Date: Wed, 19 Jun 2013 19:47:23 +0300

> Date: Wed, 19 Jun 2013 19:10:26 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked]
> 
>   LISP_INLINE struct buffer *
>   XBUFFER (Lisp_Object a)
>   {
>     eassert (BUFFERP (a));
>     return XUNTAG (a, Lisp_Vectorlike);  <<<<<<<<<<<<<<<
>   }
> 
> I don't see how XUNTAG can crash, so the only possible cause that's
> left is the assertion before that.  But how can the assertion be
> false, when line 3189 of w32fns.c is only executed if w->contents _is_
> a buffer?

The only explanation is that another thread modified w->contents after
it was tested with BUFFERP.