emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: xassert in get_glyph_face_and_encoding


From: Kim F. Storm
Subject: Re: xassert in get_glyph_face_and_encoding
Date: Mon, 07 Mar 2005 22:54:17 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Juri Linkov <address@hidden> writes:

> The following xassert caused abort() in get_glyph_face_and_encoding:
>
>   xassert (face != NULL);
>
> where face was NULL due to
>
>   face = FACE_FROM_ID (f, glyph->face_id);
>
> which returns NULL because glyph->face_id is greater
> than f->face_cache->used.

This sounds like an instance of the following entry in FOR-RELEASE:

* FATAL ERRORS

** Investigate face cache related crash.

Indications: Face cache seems to have been cleared, but
redisplay uses an invalidated face_id with FACE_FROM_ID
which then returns a NULL pointer.  Said to happen with
isearch faces.


Do you have a way to reproduce this?

If so, could you try to put a breakpoint on clear_face_cache (just before
you trigger the crash) to see why it is called during redisplay.

If you still have the trap in gdb, what is the value of clear_face_cache_count


I have installed a change to redisplay_internal which delays the clearing of the
face cache until redisplay has completed; previously, it could be done in 
the middle of redisplay, which might be the cause of this crash.

--
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

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