do not insert end() Iterators into the CacheSet even if requested
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 5 Jun 2010 11:38:17 +0000 (13:38 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 5 Jun 2010 11:38:17 +0000 (13:38 +0200)
apt-pkg/cacheset.h

index 708531b..b65e053 100644 (file)
@@ -61,6 +61,9 @@ public:                                                                       /*{{{*/
        // 103. set::iterator is required to be modifiable, but this allows modification of keys
        typedef typename APT::PackageSet::const_iterator iterator;
 
+       using std::set<pkgCache::PkgIterator>::insert;
+       inline void insert(pkgCache::PkgIterator const &P) { if (P.end() == false) std::set<pkgCache::PkgIterator>::insert(P); };
+
        /** \brief returns all packages in the cache whose name matchs a given pattern
 
            A simple helper responsible for executing a regular expression on all
@@ -145,6 +148,9 @@ public:                                                                     /*{{{*/
        // 103. set::iterator is required to be modifiable, but this allows modification of keys
        typedef typename APT::VersionSet::const_iterator iterator;
 
+       using std::set<pkgCache::VerIterator>::insert;
+       inline void insert(pkgCache::VerIterator const &V) { if (V.end() == false) std::set<pkgCache::VerIterator>::insert(V); };
+
        /** \brief specifies which version(s) will be returned if non is given */
        enum Version {
                /** All versions */