emacs-devel
[Top][All Lists]
Advanced

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

Re: Face alias bugs (Re: abort() in keyboard.c)


From: Kim F. Storm
Subject: Re: Face alias bugs (Re: abort() in keyboard.c)
Date: Tue, 19 Apr 2005 10:36:52 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

address@hidden (Károly Lőrentey) writes:

> I have received a backtrace for an aborted multi-tty session from Ami
> Fischman that is relevant to the trunk as well.

Thanks for the report and analysis.

I have installed a different change for this problem which uses a
new safe-get function for the face lookup.  I also added a check
for alias loops.

>
> The abort was caused by Emacs entering the debugger during redisplay
> because of a property list on a face symbol that was not a well-formed
> Lisp list (see frames #23-26 in the backtrace at the bottom).
>
> Beside the (rare) crash condition, there are other symptoms that are
> easier to reproduce.  For example (in a recent CVS):
>
>       emacs -q
>       (setplist 'default (append (symbol-plist 'default) (cons 'foo 'bar)))
>       C-h i
>         <Redisplay loops>
>
> Recursive aliases are fun as well:
>
>         emacs -q
>       (put 'foo 'face-alias 'default) 
>         (put 'default 'face-alias 'foo)
>         C-h i
>         <unquitable loop>
>
> The patch below fixes all these problems by protecting the call to
> Fget inside resolve_face_name and limiting the number of indirections
> during a single face lookup.

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





reply via email to

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