I have got a crash inside Editor::Paint() on the line if (!marginView.pixmapSelPattern->Initialised()), where marginView.pixmapSelPattern is nullptr (due to ChangeSize() been called).
Rough call trace (missing quote for multiline string, which cause code folding for all subsequence lines changed):
Paint 000001EF1FBA1B00
Paint marginView 000001EF1FBA1B00
Paint 000001EF1FBA1B00
Paint marginView 000001EF1FBA1B00
FoldExpand
SetScrollBars
Paint 000001EF1FBA1B00
FoldExpand
SetScrollBars
ChangeSize
DropGraphics
SetScrollBars
FoldChanged
SetScrollBars
FoldChanged
... // many repeated FoldChanged / SetScrollBars
FoldChanged
SetScrollBars
FoldChanged
SetScrollBars
Paint marginView 0000000000000000
The crash could be fixed with either:
if (!marginView.pixmapSelPattern || !marginView.pixmapSelPattern->Initialised()).RefreshPixMaps(surfaceWindow); and add one before the if block (so only a single call). I don't understand why RefreshPixMaps() needs to be called earlier in the function.
Related
Commit: [7915af]
The crash is due to styling inside
StyleAreaBounded().styling inside
WrapLines(WrapScope::wsVisible)may also cause code folding/scrollbar changes that may (?) not be observed bywrapOccurred, so move downRefreshPixMaps(surfaceWindow);looks is the proper fix.