]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/cacheset.cc
* apt-pkg/cacheset.cc:
[apt.git] / apt-pkg / cacheset.cc
index 43ade4b4e7eb2cd27f8e5d0210e72c597572d0b7..e91b56997b2fc499edbf115fdd6347b549ae9bd0 100644 (file)
@@ -261,9 +261,14 @@ bool VersionSet::AddSelectedVersion(pkgCacheFile &Cache, VersionSet &verset,
 // getCandidateVer - Returns the candidate version of the given package        /*{{{*/
 pkgCache::VerIterator VersionSet::getCandidateVer(pkgCacheFile &Cache,
                pkgCache::PkgIterator const &Pkg, bool const &AllowError) {
-       if (unlikely(Cache.BuildDepCache() == false))
-               return pkgCache::VerIterator(*Cache);
-       pkgCache::VerIterator Cand = Cache[Pkg].CandidateVerIter(Cache);
+       pkgCache::VerIterator Cand;
+       if (Cache.IsDepCacheBuilt() == true)
+               Cand = Cache[Pkg].CandidateVerIter(Cache);
+       else {
+               if (unlikely(Cache.BuildPolicy() == false))
+                       return pkgCache::VerIterator(*Cache);
+               Cand = Cache.GetPolicy()->GetCandidateVer(Pkg);
+       }
        if (AllowError == false && Cand.end() == true)
                _error->Error(_("Can't select candidate version from package %s as it has no candidate"), Pkg.FullName(true).c_str());
        return Cand;