Subject: bug#1105 closed by Chong Yidong <[email-masked]> (Re: Looping in redisplay due to font problem)

From: [email-masked] (Emacs bug Tracking System)

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#1070: Looping in redisplay due to font problem

It has been closed by Chong Yidong <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Chong Yidong <[email-masked]> by
replying to this email.

-- 
1070: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1070
Emacs Bug Tracking System
Contact [email-masked] with problems
>From [email-masked] Thu Oct  9 09:44:01 2008
From: Chong Yidong <[email-masked]>
To: Kenichi Handa  <[email-masked]>
Cc: [email-masked]
Subject: Re: Looping in redisplay due to font problem
Date: Thu, 09 Oct 2008 12:45:45 -0400

I found the bug: it's an infloop in update_text_area which can happen
when the pixel width of the current glyph is smaller than the lbearing
of the next glyph.  I'm not sure why the bug was triggered only under
the situation I described; maybe, only that exact geometry and font
produced the numbers leading to the infloop.

I've checked in a fix.

>From [email-masked] Tue Oct  7 04:26:15 2008
From: Kenichi Handa <[email-masked]>
To: Chong Yidong <[email-masked]>
CC: [email-masked]
Subject: Re: Looping in redisplay due to font problem
Date: Tue, 07 Oct 2008 20:26:01 +0900

In article <[email-masked]>, Chong Yidong <[email-masked]> writes:

> Yes, it always seems to stop at this place.  Here's `bt full' and a
> debugging session.  I don't see anything wrong OTOH, and am unsure about
> what to look for.  Stepping forward in gdb doesn't work because the
> program is stopped inside `select'.  Any suggestions?

> #0  0x00007f6dd0fe5433 in select () from /lib/libc.so.6
> #1  0x00007f6dcf0422b6 in ?? () from /usr/lib/libxcb.so.1
> #2  0x00007f6dcf0428eb in ?? () from /usr/lib/libxcb.so.1
> #3  0x00007f6dcf043050 in xcb_send_request () from /usr/lib/libxcb.so.1
> #4  0x00007f6dd1943f1a in _XPutXCBBuffer () from /usr/lib/libX11.so.6
> #5  0x00007f6dd1944267 in ?? () from /usr/lib/libX11.so.6
> #6  0x00007f6dd19370bd in XSetClipMask () from /usr/lib/libX11.so.6
> #7  0x00000000004e426d in x_draw_glyph_string (s=0x7fffdd7a95e0)
>     at xterm.c:2883
>         relief_drawn_p = 0
> #8  0x00000000004617cc in draw_glyphs (w=0x1cd5ad0, x=72, row=0x1f727d0, 
>     area=TEXT_AREA, start=7, end=8, hl=DRAW_NORMAL_TEXT, overlaps=0)
>     at xdisp.c:20504

Please try to comment out all calls of XSetClipMask in
x_draw_glyph_string, and check if Emacs loops in redisplay.

---
Kenichi Handa
[email-masked]