Procházet zdrojové kódy

Drop the Arch information from the Version structure as we can get
the information from the parent package now

David Kalnischkies před 16 roky
rodič
revize
857e9c13d8

+ 1 - 1
apt-pkg/cacheiterators.h

@@ -178,7 +178,7 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
 	// Accessors
 	inline const char *VerStr() const {return S->VerStr == 0?0:Owner->StrP + S->VerStr;};
 	inline const char *Section() const {return S->Section == 0?0:Owner->StrP + S->Section;};
-	inline const char *Arch() const {return S->Arch == 0?0:Owner->StrP + S->Arch;};
+	inline const char *Arch() const {return S->ParentPkg == 0?0:Owner->StrP + ParentPkg()->Arch;};
 	inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + S->ParentPkg);};
 
 	inline DescIterator DescriptionList() const;

+ 7 - 3
apt-pkg/deb/deblistparser.cc

@@ -83,6 +83,13 @@ string debListParser::Architecture() {
 	return Result;
 }
 									/*}}}*/
+// ListParser::ArchitectureAll						/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool debListParser::ArchitectureAll() {
+	return Section.FindS("Architecture") == "all";
+}
+									/*}}}*/
 // ListParser::Version - Return the version string			/*{{{*/
 // ---------------------------------------------------------------------
 /* This is to return the string describing the version in debian form,
@@ -101,9 +108,6 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver)
    // Parse the section
    Ver->Section = UniqFindTagWrite("Section");
 
-   // Parse the architecture
-   Ver->Arch = WriteUniqString(Architecture());
-
    // Parse multi-arch
    if (Section.FindS("Architecture") == "all")
       /* Arch all packages can't have a Multi-Arch field,

+ 1 - 0
apt-pkg/deb/deblistparser.h

@@ -47,6 +47,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    // These all operate against the current section
    virtual string Package();
    virtual string Architecture();
+   virtual bool ArchitectureAll();
    virtual string Version();
    virtual bool NewVersion(pkgCache::VerIterator Ver);
    virtual string Description();

+ 2 - 2
apt-pkg/pkgcache.cc

@@ -399,7 +399,7 @@ const char *
 pkgCache::PkgIterator::CandVersion() const 
 {
   //TargetVer is empty, so don't use it.
-  VerIterator version = pkgPolicy::pkgPolicy(Owner).GetCandidateVer(*this);
+  VerIterator version = pkgPolicy(Owner).GetCandidateVer(*this);
   if (version.IsGood())
     return version.VerStr();
   return 0;
@@ -727,7 +727,7 @@ string pkgCache::VerIterator::RelStr()
 	    Res += File.Site();
       }      
    }
-   if (S->Arch != 0)
+   if (S->ParentPkg != 0)
       Res.append(" [").append(Arch()).append("]");
    return Res;
 }

+ 0 - 1
apt-pkg/pkgcache.h

@@ -276,7 +276,6 @@ struct pkgCache::Version						/*{{{*/
 {
    map_ptrloc VerStr;            // Stringtable
    map_ptrloc Section;           // StringTable (StringItem)
-   map_ptrloc Arch;              // StringTable
    enum {None, All, Foreign, Same, Allowed} MultiArch;
 
    // Lists

+ 1 - 0
apt-pkg/pkgcachegen.h

@@ -112,6 +112,7 @@ class pkgCacheGenerator::ListParser
    // These all operate against the current section
    virtual string Package() = 0;
    virtual string Architecture() = 0;
+   virtual bool ArchitectureAll() = 0;
    virtual string Version() = 0;
    virtual bool NewVersion(pkgCache::VerIterator Ver) = 0;
    virtual string Description() = 0;