From d803bf209be87bc097f37b22d41a5ebd13ead16d Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Tue, 23 Feb 2010 21:05:59 +0000 Subject: Figured out a much simpler fix for the cache rebuild performance. git-svn-id: http://svn.telesphoreo.org/trunk@701 514c082c-b64e-11dc-b46d-3d985efe055d --- data/_apt7/display.diff | 82 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 26 deletions(-) (limited to 'data/_apt7/display.diff') diff --git a/data/_apt7/display.diff b/data/_apt7/display.diff index 2e8fdb375..d4686ed59 100644 --- a/data/_apt7/display.diff +++ b/data/_apt7/display.diff @@ -1,6 +1,6 @@ -diff -ru apt-0.7.20.2/apt-pkg/cacheiterators.h apt-0.7.20.2+iPhone/apt-pkg/cacheiterators.h ---- apt-0.7.20.2/apt-pkg/cacheiterators.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/cacheiterators.h 2009-04-20 16:50:43.000000000 +0000 +diff -ru apt-0.7.25.3/apt-pkg/cacheiterators.h apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h +--- apt-0.7.25.3/apt-pkg/cacheiterators.h 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/cacheiterators.h 2010-02-23 20:59:22.000000000 +0000 @@ -71,6 +71,7 @@ inline pkgCache *Cache() {return Owner;}; @@ -9,7 +9,7 @@ diff -ru apt-0.7.20.2/apt-pkg/cacheiterators.h apt-0.7.20.2+iPhone/apt-pkg/cache inline const char *Section() const {return Pkg->Section == 0?0:Owner->StrP + Pkg->Section;}; inline bool Purge() const {return Pkg->CurrentState == pkgCache::State::Purge || (Pkg->CurrentVer == 0 && Pkg->CurrentState == pkgCache::State::NotInstalled);}; -@@ -123,6 +124,7 @@ +@@ -132,6 +133,7 @@ inline pkgCache *Cache() {return Owner;}; inline const char *VerStr() const {return Ver->VerStr == 0?0:Owner->StrP + Ver->VerStr;}; @@ -17,34 +17,64 @@ diff -ru apt-0.7.20.2/apt-pkg/cacheiterators.h apt-0.7.20.2+iPhone/apt-pkg/cache inline const char *Section() const {return Ver->Section == 0?0:Owner->StrP + Ver->Section;}; inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;}; inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);}; -diff -ru apt-0.7.20.2/apt-pkg/deb/deblistparser.cc apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc ---- apt-0.7.20.2/apt-pkg/deb/deblistparser.cc 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/deblistparser.cc 2009-04-20 17:02:43.000000000 +0000 -@@ -75,6 +75,10 @@ +diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc +--- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-23 20:59:56.000000000 +0000 +@@ -39,6 +39,18 @@ + // ListParser::UniqFindTagWrite - Find the tag and write a unq string /*{{{*/ + // --------------------------------------------------------------------- + /* */ ++unsigned long debListParser::FindTagWrite(const char *Tag) ++{ ++ const char *Start; ++ const char *Stop; ++ if (Section.Find(Tag,Start,Stop) == false) ++ return 0; ++ return WriteString(Start,Stop - Start); ++} ++ /*}}}*/ ++// ListParser::UniqFindTagWrite - Find the tag and write a unq string /*{{{*/ ++// --------------------------------------------------------------------- ++/* */ + unsigned long debListParser::UniqFindTagWrite(const char *Tag) + { + const char *Start; +@@ -74,6 +86,10 @@ /* */ bool debListParser::NewVersion(pkgCache::VerIterator Ver) { -+ Ver->Display = UniqFindTagWrite("Name"); ++ Ver->Display = FindTagWrite("Name"); + if (Ver->Display == 0) -+ Ver->Display = UniqFindTagWrite("Maemo-Display-Name"); ++ Ver->Display = FindTagWrite("Maemo-Display-Name"); + // Parse the section Ver->Section = UniqFindTagWrite("Section"); Ver->Arch = UniqFindTagWrite("Architecture"); -@@ -169,6 +169,10 @@ +@@ -170,6 +186,10 @@ bool debListParser::UsePackage(pkgCache::PkgIterator Pkg, pkgCache::VerIterator Ver) { + if (Pkg->Display == 0) -+ Pkg->Display = UniqFindTagWrite("Name"); ++ Pkg->Display = FindTagWrite("Name"); + if (Pkg->Display == 0) -+ Pkg->Display = UniqFindTagWrite("Maemo-Display-Name"); ++ Pkg->Display = FindTagWrite("Maemo-Display-Name"); if (Pkg->Section == 0) Pkg->Section = UniqFindTagWrite("Section"); if (Section.FindFlag("Essential",Pkg->Flags,pkgCache::Flag::Essential) == false) -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.cc apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc ---- apt-0.7.20.2/apt-pkg/deb/debrecords.cc 2009-04-20 08:54:09.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.cc 2009-04-20 17:26:22.000000000 +0000 +diff -ru apt-0.7.25.3/apt-pkg/deb/deblistparser.h apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h +--- apt-0.7.25.3/apt-pkg/deb/deblistparser.h 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h 2010-02-23 20:59:46.000000000 +0000 +@@ -33,6 +33,7 @@ + unsigned long iOffset; + string Arch; + ++ unsigned long FindTagWrite(const char *Tag); + unsigned long UniqFindTagWrite(const char *Tag); + bool ParseStatus(pkgCache::PkgIterator Pkg,pkgCache::VerIterator Ver); + bool ParseDepends(pkgCache::VerIterator Ver,const char *Tag, +diff -ru apt-0.7.25.3/apt-pkg/deb/debrecords.cc apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.cc +--- apt-0.7.25.3/apt-pkg/deb/debrecords.cc 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.cc 2010-02-23 20:59:22.000000000 +0000 @@ -51,6 +51,17 @@ return Section.FindS("Package"); } @@ -63,10 +93,10 @@ diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.cc apt-0.7.20.2+iPhone/apt-pkg/deb/ // RecordParser::Homepage - Return the package homepage /*{{{*/ // --------------------------------------------------------------------- /* */ -diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.h apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h ---- apt-0.7.20.2/apt-pkg/deb/debrecords.h 2009-04-20 08:54:09.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/deb/debrecords.h 2009-04-20 17:20:31.000000000 +0000 -@@ -39,6 +39,7 @@ +diff -ru apt-0.7.25.3/apt-pkg/deb/debrecords.h apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.h +--- apt-0.7.25.3/apt-pkg/deb/debrecords.h 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/deb/debrecords.h 2010-02-23 20:59:22.000000000 +0000 +@@ -47,6 +47,7 @@ virtual string ShortDesc(); virtual string LongDesc(); virtual string Name(); @@ -74,10 +104,10 @@ diff -ru apt-0.7.20.2/apt-pkg/deb/debrecords.h apt-0.7.20.2+iPhone/apt-pkg/deb/d virtual string Homepage(); virtual void GetRec(const char *&Start,const char *&Stop); -diff -ru apt-0.7.20.2/apt-pkg/pkgcache.h apt-0.7.20.2+iPhone/apt-pkg/pkgcache.h ---- apt-0.7.20.2/apt-pkg/pkgcache.h 2009-02-07 15:09:35.000000000 +0000 -+++ apt-0.7.20.2+iPhone/apt-pkg/pkgcache.h 2009-04-20 16:49:55.000000000 +0000 -@@ -200,6 +200,7 @@ +diff -ru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h +--- apt-0.7.25.3/apt-pkg/pkgcache.h 2010-02-23 20:58:32.000000000 +0000 ++++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2010-02-23 20:59:22.000000000 +0000 +@@ -206,6 +206,7 @@ { // Pointers map_ptrloc Name; // Stringtable @@ -85,8 +115,8 @@ diff -ru apt-0.7.20.2/apt-pkg/pkgcache.h apt-0.7.20.2+iPhone/apt-pkg/pkgcache.h map_ptrloc VersionList; // Version map_ptrloc CurrentVer; // Version map_ptrloc Section; // StringTable (StringItem) -@@ -259,6 +272,7 @@ - struct pkgCache::Version +@@ -271,6 +272,7 @@ + struct pkgCache::Version /*{{{*/ { map_ptrloc VerStr; // Stringtable + map_ptrloc Display; // Stringtable -- cgit v1.2.3