Subject: bug#51577: 27.2; Regression: reproducible hang with face functions

From: Lars Ingebrigtsen <[email-masked]>
Date: Thu, 04 Nov 2021 23:56:16 +0100

Eli Zaretskii <[email-masked]> writes:

> Detecting loops in those cases would require recording face
> specs/names we already saw in some list, and each time we get an
> :inherit attribute, check if its value is already in the list.  Is
> that worth our while, if the result will be a silent error message in
> *Messages*?

Well, the result is that Emacs doesn't hang.  :-)  I'm not so worried
about issuing any messages here.

But I wonder -- could we do this (expensive) checking in defface (or
rather custom-declare-face)?  That could be helpful -- evalling a
circular face definition should signal an error.

Do we have all the information needed to see whether we have a circular
definition at that point?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no