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