Andy Piper wrote:
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.

in any case, i think i may have discovered the cause of this crash.  it relates to bad coding inside of the functions that build up the display lines, so that you end up with two different display lines pointing to the same object, which then gets freed twice.  unless someone worked on this recently, this has been a latent bug present for a very long time.

and ...  it's a perfect candidate for being caught by a sledgehammer checker.

andy, is there any possibility you could find some time to write such a
checker?  i'd consider doing it, but you know more about the guts of redisplay and i'm busy with the mule work and such.  please?  pretty please?  i'd totally appreciate it and so would xemacs :-}




andy