summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-02 22:33:31 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-02 22:33:31 +0000
commitec716e2f9170a09e48a987113283c32851bf62ee (patch)
treed28049b1d84332e2bf46557b7cfc3592a8c42a6d /bin
parent1077544a3a8c7f2165086bb93ba3360f2ea33996 (diff)
downloadportage-ec716e2f9170a09e48a987113283c32851bf62ee.tar.gz
portage-ec716e2f9170a09e48a987113283c32851bf62ee.tar.bz2
portage-ec716e2f9170a09e48a987113283c32851bf62ee.zip
Add a PackageVirtualDbapi.__iter__() method and use it to iterate over
all installed packages in depgraph.validate_blockers(). (trunk r10112) svn path=/main/branches/2.1.2/; revision=10113
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge9
1 files changed, 5 insertions, 4 deletions
diff --git a/bin/emerge b/bin/emerge
index eb829e4fb..07984f6c5 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1657,6 +1657,9 @@ class PackageVirtualDbapi(portage.dbapi):
obj._cpv_map = self._cpv_map.copy()
return obj
+ def __iter__(self):
+ return self._cpv_map.itervalues()
+
def __contains__(self, item):
existing = self._cpv_map.get(item.cpv)
if existing is not None and \
@@ -3265,14 +3268,12 @@ class depgraph(object):
portdb = self.trees[myroot]["porttree"].dbapi
pkgsettings = self.pkgsettings[myroot]
final_db = self.mydbapi[myroot]
- cpv_all_installed = self.trees[myroot]["vartree"].dbapi.cpv_all()
blocker_cache = BlockerCache(myroot, vardb)
stale_cache = set(blocker_cache)
- for cpv in cpv_all_installed:
+ for pkg in vardb:
+ cpv = pkg.cpv
stale_cache.discard(cpv)
blocker_atoms = None
- pkg = self._pkg_cache[
- ("installed", myroot, cpv, "nomerge")]
blockers = None
if self.digraph.contains(pkg):
try: