David Reitter <[EMAIL PROTECTED]> writes: > This crash occurred with a (slightly modified) CVS version > (2007-04-04), Carbon build. > > I was trying out tabbar.el (providing tabbar-mode) using PNG files > for `tabbar-home-button-enabled-image' and the other tabbar buttons. > I think I clicked on the "mode" (leftmost) button before this > happened, but I'm not sure.
I can't reproduce this patch, but I can see how it could conceivably happen. Kim, could you study this patch and tell me what you think? *** emacs/src/xdisp.c.~1.1145.~ 2007-04-09 11:36:15.000000000 -0400 --- emacs/src/xdisp.c 2007-04-09 12:23:04.000000000 -0400 *************** *** 22437,22443 **** Lisp_Object mouse_face; int original_x_pixel = x; ! struct glyph * glyph = NULL; struct glyph_row *row; if (area == ON_MODE_LINE || area == ON_HEADER_LINE) --- 22437,22443 ---- Lisp_Object mouse_face; int original_x_pixel = x; ! struct glyph * glyph = NULL, * row_start_glyph = NULL; struct glyph_row *row; if (area == ON_MODE_LINE || area == ON_HEADER_LINE) *************** *** 22455,22461 **** /* Find glyph */ if (row->mode_line_p && row->enabled_p) { ! glyph = row->glyphs[TEXT_AREA]; end = glyph + row->used[TEXT_AREA]; for (x0 = original_x_pixel; --- 22455,22461 ---- /* Find glyph */ if (row->mode_line_p && row->enabled_p) { ! glyph = row_start_glyph = row->glyphs[TEXT_AREA]; end = glyph + row->used[TEXT_AREA]; for (x0 = original_x_pixel; *************** *** 22579,22590 **** is converted to a flatten by emacs lisp interpreter. The internal string is an element of the structures. The displayed string is the flatten string. */ ! for (tmp_glyph = glyph - 1, gpos = 0; ! tmp_glyph->charpos >= XINT (b); ! tmp_glyph--, gpos++) { ! if (!EQ (tmp_glyph->object, glyph->object)) ! break; } /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of --- 22579,22594 ---- is converted to a flatten by emacs lisp interpreter. The internal string is an element of the structures. The displayed string is the flatten string. */ ! gpos = 0; ! if (glyph != row_start_glyph) { ! for (tmp_glyph = glyph - 1; ! tmp_glyph->charpos >= XINT (b); ! tmp_glyph--, gpos++) ! { ! if (!EQ (tmp_glyph->object, glyph->object)) ! break; ! } } /* Calculate the lenght(glyph sequence length: GSEQ_LENGTH) of _______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug