--- Begin Message ---
Subject: |
Re: Looping in redisplay due to font problem |
Date: |
Tue, 07 Oct 2008 20:26:01 +0900 |
User-agent: |
SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/23.0.60 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) |
In article <87y711r87e.fsf@cyd.mit.edu>, Chong Yidong <cyd@stupidchicken.com>
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
handa@ni.aist.go.jp
--- End Message ---
--- Begin Message ---
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.
--- End Message ---