From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: William Xu Newsgroups: gmane.emacs.bugs Subject: Re: 23.0.60; Seg fault in xfaces.c at line 6703 (Emacs.app on GNUstep) Date: Mon, 04 Feb 2008 13:40:15 +0900 Organization: the Church of Emacs Message-ID: References: <47A6299E.70208@gnu.org> <5c3f50e8df2b05f7f2e7b1843d425e14@lagorda> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1202100047 13931 80.91.229.12 (4 Feb 2008 04:40:47 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 4 Feb 2008 04:40:47 +0000 (UTC) To: bug-gnu-emacs@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Feb 04 05:41:09 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 1JLt8m-0000H1-7t for geb-bug-gnu-emacs@m.gmane.org; Mon, 04 Feb 2008 05:41:08 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JLt8K-0007Kt-Cy for geb-bug-gnu-emacs@m.gmane.org; Sun, 03 Feb 2008 23:40:40 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JLt8G-0007Kf-4x for bug-gnu-emacs@gnu.org; Sun, 03 Feb 2008 23:40:36 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JLt8F-0007KQ-IY for bug-gnu-emacs@gnu.org; Sun, 03 Feb 2008 23:40:35 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JLt8F-0007KN-Du for bug-gnu-emacs@gnu.org; Sun, 03 Feb 2008 23:40:35 -0500 Original-Received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JLt8F-0000BT-Bz for bug-gnu-emacs@gnu.org; Sun, 03 Feb 2008 23:40:35 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1JLt89-0003wi-Jo for bug-gnu-emacs@gnu.org; Mon, 04 Feb 2008 04:40:30 +0000 Original-Received: from gw.community-engine.co.jp ([210.255.51.230]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 04 Feb 2008 04:40:29 +0000 Original-Received: from william.xwl by gw.community-engine.co.jp with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 04 Feb 2008 04:40:29 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 71 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: gw.community-engine.co.jp User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (darwin) Cancel-Lock: sha1:K/ACeTOhEEvSXFfdfQFRpsn6Ubo= X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) 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:17465 Archived-At: Chris Hall writes: > Obviously, the possibility of the default face not being realized was > anticipated by somebody, and considered serious enough to terminate > execution -- there was already in place a check for exactly that, and > the possibility of issuing a message and then deliberately 'erroring > out' of the program if it hadn't been realized. FYI, the carbon port in the trunk also suffers a similar problem after the unicode-2 merge. Namely, the default face can not be correctly realized. The seg fault occurs in `realize_x_face' of xfaces.c. If I ignored it, emacs could be built and run, but everything is displayed as boxes... Related codes: xfaces.c/(realized_x_face) ---------------------------------8<------------------------------------- /* Determine the font to use. Most of the time, the font will be the same as the font of the default face, so try that first. */ default_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); if (default_face && lface_same_font_attributes_p (default_face->lface, attrs)) { face->font = default_face->font; face->font_info_id = default_face->font_info_id; #ifdef USE_FONT_BACKEND face->font_info = default_face->font_info; #endif /* USE_FONT_BACKEND */ face->font_name = default_face->font_name; face->fontset = make_fontset_for_ascii_face (f, default_face->fontset, face); } else { /* If the face attribute ATTRS specifies a fontset, use it as the base of a new realized fontset. Otherwise, use the same base fontset as of the default face. The base determines registry and encoding of a font. It may also determine foundry and family. The other fields of font name pattern are constructed from ATTRS. */ int fontset = face_fontset (attrs); /* If we are realizing the default face, ATTRS should specify a fontset. In other words, if FONTSET is -1, we are not realizing the default face, thus the default face should have already been realized. */ if (fontset == -1) // (xwl): default_face is still NULL, and fontset is -1... fontset = default_face->fontset; //<-------------- crash here ! if (fontset == -1) abort (); #ifdef USE_FONT_BACKEND if (enable_font_backend) font_load_for_face (f, face); else #endif /* USE_FONT_BACKEND */ load_face_font (f, face); if (face->font) face->fontset = make_fontset_for_ascii_face (f, fontset, face); */ else face->fontset = -1; } ---------------------------------8<------------------------------------- -- William http://williamxu.net9.org