Review Request: Do not perform background parsing when there are projects in state of loading
Dmitry Risenberg
dmitry.risenberg at gmail.com
Mon Feb 28 22:29:18 UTC 2011
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/100688/
-----------------------------------------------------------
(Updated Feb. 28, 2011, 10:29 p.m.)
Review request for KDevelop.
Changes
-------
@Aleix: this was marked as submitted before I reopened it.
Fixed the reported regression (patch on top of the previous one) by adding a new projectOpeningAborted signal and handling it instead of projectClosed.
Summary
-------
In BackgroundParser, before running actual parsing, check whether there are projects in state of loading. If there are, wait until they are loaded completely. Without this, initially open files may be parsed two times: first as open files, second as members of a project. In the second case the list of include paths may be different, and that may cause some recursive re-parsing. Also differet sets of defines may cause re-parsing, though it wasn't tried.
Diffs (updated)
-----
interfaces/iprojectcontroller.h 629062db5d0d1b394e478416cfe17d589588d612
language/backgroundparser/backgroundparser.h 914e533cdb9cbfa141ec7e23a4ad6a5718ecaadb
language/backgroundparser/backgroundparser.cpp 39fb3ac4771c725320b004090e913fab89a73975
shell/project.cpp d8129a2892b7d843532eab934c1ad30c52588143
shell/projectcontroller.h 8816852fd88de7004fac1264436715a3b40dd119
shell/projectcontroller.cpp 4c32e1f5431c7c4439c56b21fff65396ee17c677
Diff: http://git.reviewboard.kde.org/r/100688/diff
Testing
-------
Initial testing time varies greatly from launch to launch, so could not estimate the influence on average parsing time. However, the worst-case parsing time (when open files are parsed before their projects are loaded and then reparsed) does decrease.
Thanks,
Dmitry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20110228/860810e8/attachment.html>
More information about the KDevelop-devel
mailing list