To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=73081 Issue #|73081 Summary|makedepend's complexity grows terribly with number of |files Component|tools Version|OOo 2.1 Platform|All URL| OS/Version|All Status|NEW Status whiteboard| Keywords| Resolution| Issue type|PATCH Priority|P3 Subcomponent|code Assigned to|mh Reported by|kendy
------- Additional comments from [EMAIL PROTECTED] Wed Jan 3 05:50:35 -0800 2007 ------- makedepend's complexity grows terribly the more include files include another include files. The reason is the way makedepend remembers values of #defines - it's per file, and every check whether the symbol was defined or not descents the entire structure of the include files and tries to search for the definition. Of course the number of tests grows terribly when include files are included by another ones. This patch fixes that: http://svn.gnome.org/viewcvs/*checkout*/ooo-build/trunk/patches/src680/fast-mkdepend.diff I introduced a separate data structure that holds all the definitions. Additionally I changed it from sorted list to a hash (with linked lists for the conflicts). Please have a look. I tested it so that I removed most of the external header guards (using http://svn.gnome.org/viewcvs/*checkout*/ooo-build/trunk/bin/strip-guards), and compiled OOo with and without the modified makedepend (clean builds). Both builds have exactly the same *.dpcc files, though the build with unmodified makedepend took about 6 times more time to finish. This is the extreme case of course, because usually the files have the external header guards; but I'd love to get rid of them ;-) --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
