summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-09 17:00:24 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-09 17:00:24 +0000
commitb4f0dca9b0c6928d3557a7fbe696dacc7faa1735 (patch)
treec0b00a25bf09165270c4e2562d043aea65bd7221
parentd77891ef525d9b913fa8c3a320ff10bc355d4d6f (diff)
downloadportage-b4f0dca9b0c6928d3557a7fbe696dacc7faa1735.tar.gz
portage-b4f0dca9b0c6928d3557a7fbe696dacc7faa1735.tar.bz2
portage-b4f0dca9b0c6928d3557a7fbe696dacc7faa1735.zip
Make DepcheckCompositeDB cache Package instances for aux_get() calls.
svn path=/main/trunk/; revision=9771
-rw-r--r--pym/_emerge/__init__.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index eaca00b3a..ba0c8a165 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1416,7 +1416,7 @@ class DepcheckCompositeDB(object):
self._depgraph = depgraph
self._root = root
self._match_cache = {}
- self._cpv_tree_map = {}
+ self._cpv_pkg_map = {}
def match(self, atom):
ret = self._match_cache.get(atom)
@@ -1439,15 +1439,14 @@ class DepcheckCompositeDB(object):
# atoms or packages to be selected if available.
ret = []
if ret is None:
- self._cpv_tree_map[pkg.cpv] = \
- self._depgraph.pkg_tree_map[pkg.type_name]
+ self._cpv_pkg_map[pkg.cpv] = pkg
ret = [pkg.cpv]
self._match_cache[atom] = ret
return ret[:]
def aux_get(self, cpv, wants):
- return self._depgraph.trees[self._root][
- self._cpv_tree_map[cpv]].dbapi.aux_get(cpv, wants)
+ metadata = self._cpv_pkg_map[cpv].metadata
+ return [metadata.get(x, "") for x in wants]
class depgraph(object):