all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Chris Hall <cjh@insidernewswire.com>
To: Jason Rumney <jasonr@gnu.org>
Cc: Emacs bugs <bug-gnu-emacs@gnu.org>, Dan Nicolaescu <dann@ics.uci.edu>
Subject: Re: 23.0.60;	Seg fault in xfaces.c at line 6703 (Emacs.app on GNUstep)
Date: Mon, 04 Feb 2008 00:32:24 -1000	[thread overview]
Message-ID: <a385a11e46af054baef0c64642ca7724@lagorda> (raw)
In-Reply-To: <47A6D110.2010206@gnu.org>

>> With the patch I supplied, at least the user knows there is an issue 
>> with 
>> realizing the default face, rather than SIGSEGV (11).

> Since this is a programming error in an internal structure, in a 
> development 
> version of the code, it is letting the developer know there is an 
> error. 
> Developers have debuggers, they don't need code to catch bugs and 
> exit 
> gracefully. To write code to catch every potential NULL pointer 
> exception in 
> the internal structures would make Emacs bloated and slow.
> 

Thanks, but I think I already pretty much understood that.  If I may 
quote myself:

>>> I am aware that sometimes some classes of errors are perhaps best 
>>> allowed to 
>>> happen and to result in catastrophic failures like segmentation 
>>> faults,

 From an uninitiated point of view, I saw an attempt to reference a 
member of an uninitialized structure, while in the process of 
initializing, as you point out, a development version of the program.

Based on the program's subsequent behavior, this structure is clearly 
*required* to be properly initialized in order to successfully realize 
a face, during the first call to 
'Fdisplay_supports_face_attributes_p'.

Further, the struct in question is called 'face_cache', which suggests 
to me that once one has realized a face, one can cache a reference to 
it in this struct.  And further suggests to me that before realizing a 
face, one would have no need of a cache, so why go to the trouble of 
initializing it, if one wasn't yet sure whether a face even *could* be 
realized?  (Never mind *requiring* it to be initialized.)

Yet this struct clearly needs to be properly initialized as a 
necessary prerequisite of realizing a face.

Maybe this is part of some sort of optimization, i.e., by delaying 
attempting to realize a face until the first time someone asks if the 
display supports face attributes?  Or am I perhaps misinterpreting the 
name/purpose of the struct?


TIA,

Chris Hall






      reply	other threads:[~2008-02-04 10:32 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
2008-02-04  8:47         ` Jason Rumney
2008-02-04 10:32           ` Chris Hall [this message]

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

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

  git send-email \
    --in-reply-to=a385a11e46af054baef0c64642ca7724@lagorda \
    --to=cjh@insidernewswire.com \
    --cc=bug-gnu-emacs@gnu.org \
    --cc=dann@ics.uci.edu \
    --cc=jasonr@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.