emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Redisplay crash


From: Stefan Monnier
Subject: Redisplay crash
Date: 08 Apr 2004 12:30:50 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

>>> Current HEAD is rock-solid for normal use, and I don't think it will
>>> can be much better in that respect (but we should try!).

>> This may be a false warning for HEAD (I run my own branch which has a fair
>> number of redisplay changes), but just in case:

>> I've had several crashes recently related to i-search faces, and haven't been
>> able to track down the cause; it appears that the face cache ids are being
>> used even after the face cache has been cleared.

> In emacs-unicode, I also met the similar bug.  Emacs crashed
> at the end of get_glyph_face_and_encoding.  In this
> function, FACE_FROM_ID (f, glyph->face_id) returned NULL,
> thus, the macro call PREPARE_FACE_FOR_DISPLAY at the end led
> to the crash.  Though, this happens very very rarely.

I've had such problems in the past.
There was a discussion about it with Gerd which led to

2002-08-27  Gerd Moellmann  <address@hidden>

        * xdisp.c (redisplay_updating_p): Variable removed.
        (inhibit_free_realized_faces, Qinhibit_free_realized_faces):
        New variables.
        (init_iterator): Don't free realized faces if
        inhibit_free_realized_faces is set.
        (redisplay_internal): Bind Qinhibit_free_realized_faces to nil.
        (syms_of_xdisp): DEFVAR_BOOL inhibit-free-realized-faces,
        initialize Qinhibit_free_realized_faces.

        * dispextern.h (PRODUCE_GLYPHS): Set inhibit_free_realized_faces
        when iterator is adding glyphs to a glyph matrix.

I can't find trace of this discussion, tho.
I've always had the impression that the above patch didn't really fix the
problem, tho it made it less frequent, so maybe it only hid the problem
more than fix it, I don't know.  In any case I figure maybe you'd like
to know.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]