prefer the Policy if it is built instead of the DepCache and
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 3 Jul 2010 22:32:52 +0000 (00:32 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 3 Jul 2010 22:32:52 +0000 (00:32 +0200)
if DepCache is not available as fallback built the Policy

cmdline/apt-get.cc
cmdline/cacheset.cc

index 38b93e7..9a6c12e 100644 (file)
@@ -768,6 +768,9 @@ struct TryToInstall {
 
    void operator() (pkgCache::VerIterator const &Ver) {
       pkgCache::PkgIterator Pkg = Ver.ParentPkg();
+
+std::clog << "INSTALL " << Pkg << " VER " << Ver.VerStr() << std::endl;
+
       Cache->GetDepCache()->SetCandidateVersion(Ver);
       pkgDepCache::StateCache &State = (*Cache)[Pkg];
 
index b96b604..78c9d3f 100644 (file)
@@ -416,12 +416,13 @@ VersionSet VersionSet::FromPackage(pkgCacheFile &Cache, pkgCache::PkgIterator co
 pkgCache::VerIterator VersionSet::getCandidateVer(pkgCacheFile &Cache,
                pkgCache::PkgIterator const &Pkg, CacheSetHelper &helper) {
        pkgCache::VerIterator Cand;
-       if (Cache.IsDepCacheBuilt() == true)
-               Cand = Cache[Pkg].CandidateVerIter(Cache);
-       else {
+       if (Cache.IsPolicyBuilt() == true || Cache.IsDepCacheBuilt() == false)
+       {
                if (unlikely(Cache.GetPolicy() == 0))
                        return pkgCache::VerIterator(Cache);
                Cand = Cache.GetPolicy()->GetCandidateVer(Pkg);
+       } else {
+               Cand = Cache[Pkg].CandidateVerIter(Cache);
        }
        if (Cand.end() == true)
                return helper.canNotFindCandidateVer(Cache, Pkg);