unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: William Xu <william.xwl@gmail.com>
To: bug-gnu-emacs@gnu.org
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	[thread overview]
Message-ID: <m28x21nxlc.fsf@gmail.com> (raw)
In-Reply-To: 5c3f50e8df2b05f7f2e7b1843d425e14@lagorda

Chris Hall <cjh@insidernewswire.com> 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





  reply	other threads:[~2008-02-04  4:40 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-02  3:51 23.0.60; Seg fault in xfaces.c at line 6703 (Emacs.app on GNUstep) Chris
2008-02-02 20:13 ` Dan Nicolaescu
2008-02-03  7:20   ` Chris Hall
2008-02-03 17:19     ` Dan Nicolaescu
2008-02-04  1:39       ` YAMAMOTO Mitsuharu
2008-02-04  7:28         ` Chris Hall
2008-02-04  7:38           ` YAMAMOTO Mitsuharu
2008-02-04  9:55             ` Chris Hall
2008-02-04 10:15             ` William Xu
2008-02-04 10:57               ` YAMAMOTO Mitsuharu
2008-02-04 11:35                 ` William Xu
2008-02-05 11:07             ` Chris Hall
2008-02-06  1:34               ` YAMAMOTO Mitsuharu
2008-02-06  9:53                 ` Chris Hall
2008-02-05 13:30             ` Chris Hall
2008-02-03 20:52     ` Jason Rumney
2008-02-04  3:20       ` Chris Hall
2008-02-04  4:40         ` William Xu [this message]
2008-02-04  8:47         ` Jason Rumney
2008-02-04 10:32           ` Chris Hall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m28x21nxlc.fsf@gmail.com \
    --to=william.xwl@gmail.com \
    --cc=bug-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).