Subject: bug#1076 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] Fri Oct  3 09:17:09 2008
From: Chong Yidong <[email-masked]>
To: Kenichi Handa <[email-masked]>
Cc: [email-masked]
Subject: Re: Looping in redisplay due to font problem
Date: Fri, 03 Oct 2008 12:18:18 -0400

Kenichi Handa <[email-masked]> writes:

> That's a very strange phenomenon.  But, I can't reproduce
> it.  When I hit PageDown four times, the top line is "Luxi
> Sans:style=Regular", and "Corsivo" appears on the 9th line
> (logically 8th line because of continuation).
>
> In my case, this font is selected for the default case:
>
> -bitstream-Bitstream Vera Sans
> Mono-normal-normal-normal-*-16-*-*-*-m-0-iso10646-1
>
> Which font is selected in your case?

C-u C-x = gives

-unknown-DejaVu Sans Mono-normal-normal-normal-*-16-*-*-*-m-0-iso10646-1

> And, what does "Emacs begins looping while in redisplay" exactly mean?

Emacs is unresponsive to any further input, and the character "o" in
"Corsivo" flickers.  Interrupting the loop in gdb gives the following
backtrace.  It seems to be stuck in an Xft function.

#0  0x00007f54662e1433 in select () from /lib/libc.so.6
#1  0x00007f546403b2b6 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007f546403b8eb in ?? () from /usr/lib/libxcb.so.1
#3  0x00007f546403c050 in xcb_send_request () from /usr/lib/libxcb.so.1
#4  0x00007f5466e71f1a in _XPutXCBBuffer () from /usr/lib/libX11.so.6
#5  0x00007f5466e72267 in ?? () from /usr/lib/libX11.so.6
#6  0x00007f54650be5a3 in XRenderFillRectangle () from /usr/lib/libXrender.so.1
#7  0x00007f5466c1f5b1 in XftDrawRect () from /usr/lib/libXft.so.2
#8  0x0000000000656080 in xftfont_draw (s=0x7fff725843b0, from=0, to=1, x=100, 
    y=175, with_background=1) at xftfont.c:549
#9  0x00000000004e0268 in x_draw_glyph_string_foreground (s=0x7fff725843b0)
    at xterm.c:1316
#10 0x00000000004e374c in x_draw_glyph_string (s=0x7fff725843b0)
    at xterm.c:2708
#11 0x00000000004616f1 in draw_glyphs (w=0x17ec430, x=110, row=0x1f49b20, 
    area=TEXT_AREA, start=7, end=8, hl=DRAW_NORMAL_TEXT, overlaps=0)
    at xdisp.c:20504
#12 0x0000000000466ec1 in x_write_glyphs (start=0x145f748, len=1)
    at xdisp.c:21913
#13 0x0000000000418fa4 in update_text_area (w=0x17ec430, vpos=8)
    at dispnew.c:4584
...