Sfoglia il codice sorgente

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

David Kalnischkies 16 anni fa
parent
commit
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;