Revision a6007b4...

Go back to digest for 4th November 2012

Bug Fixes in KDE Base

Joseph Wenninger committed changes in [kate] /:

This should hopefully fix #309093. I think a similar behaviour in wrapLine could also be needed.

The the cause of the crash was:

1: if (......) {
2: ......;
3: ......;
4: } else if { ....
5: .....

If the text from infront of the first if to just infront of the second if got deleted a line unwrapping action took place
The kate buffer just kept the { of line 1 and removed the information about the } { in line 4 during unwrapping, without
triggering a tree update.

1: if { ....
2: .....

When doing highlighting again it found again that the new block had a single { in the new line 1, therefore it triggered a
column only update within the folding tree. The tree on the other hand thought that it still had two region changes in the
now new line 1 and tried to update all columns as being told by the buffer, but the information it got from the highlighting
system containd only one opening region -> access to an elemnt in the vector that was out of bounds -> assert/crash

Now unwrapping just joins the region changes of the involved lines and the tree checks if the lenghtes of the vectors
matche, so it should always do a complete update of the meta information if needed

File Changes

Modified 4 files
  •   part/buffer/katetextblock.cpp
  •   part/document/katebuffer.cpp
  •   part/document/katebuffer.h
  •   part/syntax/katecodefolding.cpp
4 files changed in total