Make DepcheckCompositeDB cache Package instances for aux_get() calls.
authorZac Medico <zmedico@gentoo.org>
Wed, 9 Apr 2008 17:00:24 +0000 (17:00 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 9 Apr 2008 17:00:24 +0000 (17:00 -0000)
svn path=/main/trunk/; revision=9771

pym/_emerge/__init__.py

index eaca00b3a825293d72bddbd525f99e60a4f73863..ba0c8a1658de6a54c49c8bb57f2ca498b98a1729 100644 (file)
@@ -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):