[Top][All Lists]
[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