Revision 870066

Go back to digest for 12th October 2008

Optimization in KDE Base

David Nolden committed changes in /trunk/KDE/kdelibs:

Improve the smart-ranges so they don't confine child-ranges to each other, without significant performance-overhead in the case of non-overlapping children.

This undocumented behavior was very hard to deal with in complex applications like KDevelop's C++ support, and hard to debug.

Now the child-ranges are sorted by end-cursor, and each range maintains the count of later ranges it is overlapped by. This allows efficient manipulation and efficient rendering.

This includes a lot of #ifdeffed debugging and verification code, that has proven that it works quite well.

Rendering of overlapped child-ranges works too. Whenever overlapped children are encountered, a new KateRenderRange is created for the additional overlapping children.

File Changes

Modified 7 files
  • /trunk/KDE/kdelibs
  •   /interfaces/ktexteditor/smartrange.cpp
  •   /interfaces/ktexteditor/smartrange.h
  •   /kate/render/katerenderrange.cpp
  •   /kate/render/katerenderrange.h
  •   /kate/smart/katesmartcursor.cpp
  •   /kate/smart/katesmartmanager.cpp
  •   /kate/smart/katesmartmanager.h
7 files changed in total