Revision 581178

Go back to digest for 10th September 2006

Features in Development Tools

Hamish Rodda committed changes in /trunk/KDE/kdevelop:

Last night and tonight's work...:

1) Use static deleters for singletons

2) Use new KUrl for KDevDocumentRangeObject when working with non-smart cursors. I found that even a blank KUrl (QUrl) allocates a QUrlPrivate, and this was hurting us - 5Mb memory use on a 1Mb document. Found on
profiling with Massif.

3) Locking for the definition-use chain.
- One top-level lock per chain for most functions
- Per-object locking (internally) for external references - not finished
- Use locking in client code

I have left debugging enabled for now... if you hit an assert, please
email/irc me.

4) Disable the duchainviewer. For this to work, there is still a fair
bit of work to be done:
- need notification of major changes to a duchain while unlocked
- need to create a proxy model which can forward data from any thread to the gui thread

File Changes

Added 2 files
  • /trunk/KDE/kdevelop/languages/cpp/duchain
  •   /duchainbase.cpp
  •   /duchainbase.h
Deleted 2 files
  • /trunk/KDE/kdevelop/languages/cpp/duchain
  •   /duchainmodelbase.cpp
  •   /duchainmodelbase.h
Modified 38 files
  • /trunk/KDE/kdevelop
  •   /languages/cpp/CMakeLists.txt
  •   /languages/cpp/cppcodecompletion.cpp
  •   /languages/cpp/cppcodecompletionmodel.cpp
  •   /languages/cpp/cpphighlighting.cpp
  •   /languages/cpp/cpphighlighting.h
  •   /languages/cpp/cpplanguagesupport.cpp
  •   /lib/editor/kdevdocumentrangeobject.cpp
  •   /lib/editor/kdevdocumentrangeobject.h
  •   /lib/editor/kdeveditorintegrator.cpp
  •   /languages/cpp/duchain/classfunctiondeclaration.cpp
  •   /languages/cpp/duchain/classfunctiondeclaration.h
  •   /languages/cpp/duchain/classmemberdeclaration.cpp
  •   /languages/cpp/duchain/classmemberdeclaration.h
  •   /languages/cpp/duchain/CMakeLists.txt
  •   /languages/cpp/duchain/contextbuilder.cpp
  •   /languages/cpp/duchain/contextbuilder.h
  •   /languages/cpp/duchain/declaration.cpp
  •   /languages/cpp/duchain/declaration.h
  •   /languages/cpp/duchain/declarationbuilder.cpp
  •   /languages/cpp/duchain/definition.cpp
  •   /languages/cpp/duchain/definition.h
  •   /languages/cpp/duchain/duchain.cpp
  •   /languages/cpp/duchain/ducontext.cpp
  •   /languages/cpp/duchain/ducontext.h
  •   /languages/cpp/duchain/forwarddeclaration.cpp
  •   /languages/cpp/duchain/forwarddeclaration.h
  •   /languages/cpp/duchain/smartconverter.cpp
  •   /languages/cpp/duchain/symboltable.cpp
  •   /languages/cpp/duchain/symboltable.h
  •   /languages/cpp/duchain/topducontext.cpp
  •   /languages/cpp/duchain/topducontext.h
  •   /languages/cpp/duchain/typerepository.cpp
  •   /languages/cpp/duchain/typerepository.h
  •   /languages/cpp/duchain/use.cpp
  •   /languages/cpp/duchain/use.h
  •   /languages/cpp/duchain/tests/test_duchain.cpp
  •   /languages/cpp/duchain/viewer/duchainmodel.cpp
  •   /languages/cpp/duchain/viewer/duchainmodel.h
42 files changed in total