Subject: bug#5730: 23.1.94; Emacs crash running gnus on Windows

From: Chong Yidong <[email-masked]>
Date: Wed, 24 Mar 2010 17:37:13 -0400

I've checked a change into the bzr branch; could you verify if it fixes
the problem?  If it's inconvenient for you to check out the bzr branch,
try the patch below:

*** xdisp.c	2010-03-10 21:20:33.000000000 -0500
--- xdisp.c	2010-03-24 17:22:37.000000000 -0400
***************
*** 1375,1407 ****
  	visible_p = 1;
        if (visible_p)
  	{
! 	  if (it_method == GET_FROM_BUFFER)
! 	    {
! 	      Lisp_Object window, prop;
! 
! 	      XSETWINDOW (window, w);
! 	      prop = Fget_char_property (make_number (charpos),
! 					 Qinvisible, window);
! 
! 	      /* If charpos coincides with invisible text covered with an
! 		 ellipsis, use the first glyph of the ellipsis to compute
! 		 the pixel positions.  */
! 	      if (TEXT_PROP_MEANS_INVISIBLE (prop) == 2)
! 		{
! 		  struct glyph_row *row = it.glyph_row;
! 		  struct glyph *glyph = row->glyphs[TEXT_AREA];
! 		  struct glyph *end = glyph + row->used[TEXT_AREA];
! 		  int x = row->x;
! 
! 		  for (; glyph < end
! 			 && (!BUFFERP (glyph->object)
! 			     || glyph->charpos < charpos);
! 		       glyph++)
! 		    x += glyph->pixel_width;
! 		  top_x = x;
! 		}
! 	    }
! 	  else if (it_method == GET_FROM_DISPLAY_VECTOR)
  	    {
  	      /* We stopped on the last glyph of a display vector.
  		 Try and recompute.  Hack alert!  */
--- 1375,1381 ----
  	visible_p = 1;
        if (visible_p)
  	{
! 	  if (it_method == GET_FROM_DISPLAY_VECTOR)
  	    {
  	      /* We stopped on the last glyph of a display vector.
  		 Try and recompute.  Hack alert!  */