Phil Krylov wrote:
I was getting a segfault in ME_MarkForPainting() after that patch (BTW great work),
Owww... I really hoped to avoid bugs in THAT :)
and started looking through the code. One thing I found was obviously a typo which can be easily fixed (BTW I don't know for sure but I'd also update pLastSelStartPara and pLastSelEndPara here):
Yes, it's a copy-paste bug. I thought I've fixed that one, but I obviously didn't. Updating pLastSelStartPara / pLastSelEndPara is not necessary, because any time a paragraph is deleted, those two variables are updated at para.c:257.
But it did not resolve my problem. I did not have time to find the real reason for the segfault, but here is a quick hack which made the segfault go away and can probably help you in finding the real reason.
What are the circumstances? Is it after some delete/insert operation, or just after document load?
I'd do an assert(pLastSelStartPara->member.para.nCharOfs <= pLastSelEndPara->member.para.nCharOfs) or something. That could possibly shed some light on the issue. I'm going to spend some time on it, as soon as I get Wine running after doing git clone from scratch yesterday (my old repository got FUBAR and I couldn't do anything to get it to sync to master). This git thing is a piece of unreliable unintuitive crap.
Krzysztof