It seems likely that your changes have tickled something, since we do
not see these on 21.4.x at all. I'm wondering whether the removal of
the window_mirror updates in mark_redisplay could be responsible.
possible, but it seems unlikely -- and if so, i've merely exposed an
existing bug; that code was clearly wrong and was causing other
crashes. i've seen periodic redisplay crashes for a long time,
certainly going back to 21.4 and before, some of which i fixed, but
I've not seen any, and I haven't seen any reported recently.
others have been too random to diagnose. and i know there's lots of
problems with redisplay -- ms windows, gutters, etc. have stretched
redisplay far beyond its initial design. for example, the gutter code
introduced calling lisp inside of redisplay -- something which it
definitely was not designed for. it was patched around [note this:
The specifier code always ended up calling lisp at some point within
redisplay. I don't believe specifiers were my invention.
no it didn't. there was careful caching to avoid this, and the places that
called lisp code were explicitly placed outside of the critical section boundaries.
the change you made was to write more code that was comparable to the stuff
outside of the critical section boundaries, i.e. calling lisp and such, but
place it within the critical section.