emacs-devel
[Top][All Lists]
Advanced

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

Re: master 5ee43ba0df causing display hangs?


From: Eli Zaretskii
Subject: Re: master 5ee43ba0df causing display hangs?
Date: Wed, 11 Dec 2019 19:47:40 +0200

> From: Yuri D'Elia <address@hidden>
> Cc: address@hidden
> Date: Wed, 11 Dec 2019 18:29:54 +0100
> 
> What I meant was: is it worth it to also check explicitly whether the
> value of :inherit is a face using LFACEP (hopefully I got the right
> macro name) directly in merge_named_face? Or is it simply redundant?

It's not redundant, but it takes CPU cycles, and this code is called
in the bowels of the display engine, so it needs to be as fast as
possible.

Moreover, the value of :inherit can legitimately be a list of faces,
not just a single face.  So the test is somewhat complicated, and I'd
rather not do it.

In general, we just ignore invalid face specs in all this code, so I
think it's okay to do that here as well.  Once we are protected from
looping on such mistaken specs, we should be OK, I think.

(Btw, the problem in this case couldn't have been detected in
merge_named_face, because the offending symbol, gnus-header-content,
was indeed a face; it's its :inherit attribute that was faulty.  So
we'd need to try detecting that in face_inherited_attr itself, and
then deal with the fact that the value can be a list.)



reply via email to

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