]> cygwin.com Git - cygwin-apps/setup.git/commit - prereq.cc
Change package_db collection of packages from vector to a map so we can look things...
authorJon TURNEY <jon.turney@dronecode.org.uk>
Fri, 26 Nov 2010 14:21:43 +0000 (14:21 +0000)
committerJon TURNEY <jon.turney@dronecode.org.uk>
Fri, 26 Nov 2010 14:21:43 +0000 (14:21 +0000)
commit263157cb6df6ce18c2ac50138fd0b23d744e4581
treed20612271afcfa5137aa50e0bc2b56b885b39e67
parentc9c1949160c0a858cc0f430c795e96412f071dd0
Change package_db collection of packages from vector to a map so we can look things up in it quickly

This allows packagedb::findBinary() and packagedb::findSource() to be re-written to locate packages
by name rather than searching the entire set, which makes a big difference to total execution time.

        * IniDBBuilderPackage.cc (IniDBBuilderPackage): Remove db.packages vector
        sorting.
        (buildPackage, buildPackageSource): Change package collection from vector
        to map.
        * PickView.cc (setViewMode, init_headers, defaultTrust): Ditto.
        * choose.cc (createListview, logResults, keepClicked)
        (changeTrust): Ditto
        * install.cc (do_install_thread): Ditto
        * download.cc (do_download_thread): Ditto
        * prereq.cc (isMet): Ditto
        * package_meta.cc (ScanDownloadedFiles): Ditto
        * package_db.h (packagedb): Ditto
        * package_db.cc (packagedb, flush, markUnVisited, setExistence)
        (fillMissingCategory): Ditto
        (findBinary, findSource): Rewrite to locate packages in map rather than
        searching the whole vector, for performance.
        (ConnectedLoopFinder, doIt, visit): Rewrite to refer to package using a
        packagemeta *, as an index into the vector of packages can no longer be
        used.
ChangeLog
IniDBBuilderPackage.cc
PickView.cc
choose.cc
download.cc
install.cc
package_db.cc
package_db.h
package_meta.cc
prereq.cc
This page took 0.029427 seconds and 5 git commands to generate.