]> git.saurik.com Git - apt.git/commitdiff
Drop the Section field from pkgCache::Package again
authorJulian Andres Klode <jak@debian.org>
Wed, 12 Aug 2015 21:44:33 +0000 (23:44 +0200)
committerJulian Andres Klode <jak@debian.org>
Wed, 12 Aug 2015 21:45:17 +0000 (23:45 +0200)
This somehow got back, we don't really know why. Emulate the
Section() method in the PkgIterator by looking at the section
of the head of the VersionList.

apt-pkg/cacheiterators.h
apt-pkg/pkgcache.h

index f8321079aee5407ecb598a002b00f97abf237cc3..48547e56431cfa31202b58d0e8978f2bc01e5ceb 100644 (file)
@@ -157,11 +157,7 @@ class pkgCache::PkgIterator: public Iterator<Package, PkgIterator> {
        inline const char *Name() const { return Group().Name(); }
        // Versions have sections - and packages can have different versions with different sections
        // so this interface is broken by design. Run as fast as you can to Version.Section().
-       APT_DEPRECATED inline const char *Section() const {
-          APT_IGNORE_DEPRECATED_PUSH
-          return S->Section == 0?0:Owner->StrP + S->Section;
-          APT_IGNORE_DEPRECATED_POP
-       }
+       APT_DEPRECATED inline const char *Section() const;
        inline bool Purge() const {return S->CurrentState == pkgCache::State::Purge ||
                (S->CurrentVer == 0 && S->CurrentState == pkgCache::State::NotInstalled);}
        inline const char *Arch() const {return S->Arch == 0?0:Owner->StrP + S->Arch;}
@@ -518,5 +514,7 @@ inline pkgCache::VerFileIterator pkgCache::VerIterator::FileList() const
        {return VerFileIterator(*Owner,Owner->VerFileP + S->FileList);}
 inline pkgCache::DescFileIterator pkgCache::DescIterator::FileList() const
        {return DescFileIterator(*Owner,Owner->DescFileP + S->FileList);}
+APT_DEPRECATED inline const char * pkgCache::PkgIterator::Section() const
+       {return S->VersionList == 0 ? 0 : VersionList().Section();}
                                                                        /*}}}*/
 #endif
index e59697c28545ef9c884a39b03ebd77d1d8768054..ff250b53206545ced2953614b777616d4f56fad1 100644 (file)
@@ -429,12 +429,6 @@ struct pkgCache::Package
    map_pointer_t VersionList;       // Version
    /** \brief index to the installed version */
    map_pointer_t CurrentVer;        // Version
-   /** \brief indicates nothing (consistently)
-       This field used to contain ONE section the package belongs to,
-       if those differs between versions it is a RANDOM one.
-       The Section() method tries to reproduce it, but the only sane
-       thing to do is use the Section field from the version! */
-   APT_DEPRECATED map_ptrloc Section; // StringItem
    /** \brief index of the group this package belongs to */
    map_pointer_t Group;             // Group the Package belongs to