From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chong Yidong Newsgroups: gmane.emacs.bugs Subject: bug#1070: Looping in redisplay due to font problem Date: Tue, 07 Oct 2008 12:14:51 -0400 Message-ID: <87bpxwcrgk.fsf@cyd.mit.edu> References: <878wt6a7aq.fsf@cyd.mit.edu> <87vdw91wl1.fsf@cyd.mit.edu> <87y711r87e.fsf@cyd.mit.edu> Reply-To: Chong Yidong , 1070@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1223397030 17165 80.91.229.12 (7 Oct 2008 16:30:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 7 Oct 2008 16:30:30 +0000 (UTC) Cc: 1070@emacsbugs.donarmstrong.com To: Kenichi Handa Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 07 18:31:26 2008 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KnFT0-0007Uh-Ee for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Oct 2008 18:31:22 +0200 Original-Received: from localhost ([127.0.0.1]:53556 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KnFRw-0003f4-Pe for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Oct 2008 12:30:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KnFRh-0003Ss-LI for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2008 12:30:01 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KnFRg-0003Qm-DI for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2008 12:30:01 -0400 Original-Received: from [199.232.76.173] (port=46231 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KnFRg-0003QO-5a for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2008 12:30:00 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:49035) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KnFRf-0002lF-SY for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2008 12:30:00 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m97GTvkR014011; Tue, 7 Oct 2008 09:29:57 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id m97GK3er011682; Tue, 7 Oct 2008 09:20:03 -0700 X-Loop: don@donarmstrong.com Resent-From: Chong Yidong Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Tue, 07 Oct 2008 16:20:03 +0000 Resent-Message-ID: Resent-Sender: don@donarmstrong.com X-Emacs-PR-Message: report 1070 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 1070-submit@emacsbugs.donarmstrong.com id=B1070.122339599810424 (code B ref 1070); Tue, 07 Oct 2008 16:20:03 +0000 Original-Received: (at 1070) by emacsbugs.donarmstrong.com; 7 Oct 2008 16:13:18 +0000 Original-Received: from cyd.mit.edu (CYD.MIT.EDU [18.115.2.24]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id m97GDFEl010418 for <1070@emacsbugs.donarmstrong.com>; Tue, 7 Oct 2008 09:13:16 -0700 Original-Received: by cyd.mit.edu (Postfix, from userid 1000) id C028057E0B1; Tue, 7 Oct 2008 12:14:51 -0400 (EDT) In-Reply-To: (Kenichi Handa's message of "Tue, 07 Oct 2008 20:26:01 +0900") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Tue, 07 Oct 2008 12:30:01 -0400 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:21218 Archived-At: > Please try to comment out all calls of XSetClipMask in > x_draw_glyph_string, and check if Emacs loops in redisplay. It still loops, though the backtrace is different now. Interrupting the loop several times, I see that it gets stuck in two places within xftfont_draw, at xftfont.c:561 and xftfont.c:549. Another clue: I can't reproduce this bug on my 32-bit laptop, so maybe it only shows up on 64-bit machines. #0 0x00007ffc618cf433 in select () from /lib/libc.so.6 ... #6 0x00007ffc60dd07ad in XRenderCompositeString8 () #7 0x00007ffc61fe1aa5 in XftGlyphRender () from /usr/lib/libXft.so.2 #8 0x00007ffc61fdbb1c in XftDrawGlyphs () from /usr/lib/libXft.so.2 #9 0x000000000065618f in xftfont_draw (s=0x7fff6e090ee0, from=0, to=1, x=64, y=149, with_background=1) at xftfont.c:561 f = (FRAME_PTR) 0x19a52b0 face = (struct face *) 0x18ee6b0 xftfont_info = (struct xftfont_info *) 0x1c04810 xftface_info = (struct xftface_info *) 0xfbc3e0 xft_draw = (XftDraw *) 0x18088d0 code = (FT_UInt *) 0x7fff6e090c80 fg = { pixel = 16113331, color = {red = 62965, green = 57054, blue = 46003, alpha = 65535}} bg = {pixel = 0, color = {red = 0, green = 0, blue = 0 alpha = 65535}} len = 1 i = 1 #10 0x00000000004e02f6 in x_draw_glyph_string_foreground (s=0x7fff6e090ee0) at xterm.c:1316 font = (struct font *) 0x1c04810 boff = 0 y = 149 i = 0 x = 64 #11 0x00000000004e374d in x_draw_glyph_string (s=0x7fffd1fa8de0) at xterm.c:2708 #12 0x00000000004617cc in draw_glyphs (w=0x1cd5ad0, x=72, row=0x1f6fb20, area=TEXT_AREA, start=7, end=8, hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:20504 #13 0x0000000000466f9c in x_write_glyphs (start=0x1fc1688, len=1) at xdisp.c:21913 #14 0x0000000000418fe2 in update_text_area (w=0x1cd5ad0, vpos=8) at dispnew.c:4585 ... (gdb) f 9 #9 0x000000000065618f in xftfont_draw (s=0x7fff6e090ee0, from=0, to=1, x=64, y=149, with_background=1) at xftfont.c:561 561 XftDrawGlyphs (xft_draw, &fg, xftfont_info->xftfont, (gdb) p *(xftfont_info->xftfont) $1 = {ascent = 13, descent = 4, height = 15, max_advance_width = 8, charset = 0x7ffc65f0f498, pattern = 0x1647700} #0 0x00007f44c57e4433 in select () from /lib/libc.so.6 ... #7 0x00007f44c5ef05b1 in XftDrawRect () from /usr/lib/libXft.so.2 #8 0x000000000065601c in xftfont_draw (s=0x7fffd1fa8de0, from=0, to=1, x=64, y=149, with_background=1) at xftfont.c:549 f = (FRAME_PTR) 0x18a0180 face = (struct face *) 0x13cd8a0 xftfont_info = (struct xftfont_info *) 0x1c04810 xftface_info = (struct xftface_info *) 0xfb65c0 xft_draw = (XftDraw *) 0x16bcee0 code = (FT_UInt *) 0x7fffd1fa8b80 fg = { pixel = 16113331, color = { red = 62965, green = 57054, blue = 46003, alpha = 65535 } } bg = { pixel = 0, color = { red = 0, green = 0, blue = 0, alpha = 65535 } } len = 1 i = 8912904 #9 0x00000000004e02f6 in x_draw_glyph_string_foreground (s=0x7fffd1fa8de0) at xterm.c:1316 #9 0x00000000004e374d in x_draw_glyph_string (s=0x7fffd1fa8de0) at xterm.c:2708 #10 0x00000000004617cc in draw_glyphs (w=0x1cd5ad0, x=72, row=0x1f6fb20, area=TEXT_AREA, start=7, end=8, hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:20504 #11 0x0000000000466f9c in x_write_glyphs (start=0x1fc1688, len=1) at xdisp.c:21913 ...