Simplify depgraph._select_pkg_from_graph() by using match_pkgs().
authorZac Medico <zmedico@gentoo.org>
Tue, 13 Jan 2009 04:43:40 +0000 (04:43 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 13 Jan 2009 04:43:40 +0000 (04:43 -0000)
svn path=/main/trunk/; revision=12494

pym/_emerge/__init__.py

index 9e8d343a9e988f62b923e373d197c38226527ad9..796275588b3df332c8641240f64eb86b9f337be8 100644 (file)
@@ -6234,19 +6234,12 @@ class depgraph(object):
                replacement.
                """
                graph_db = self._graph_trees[root]["porttree"].dbapi
-               matches = graph_db.match(atom)
+               matches = graph_db.match_pkgs(atom)
                if not matches:
                        return None, None
-               cpv = matches[-1] # highest match
-               slot_atom = "%s:%s" % (portage.cpv_getkey(cpv),
-                       graph_db.aux_get(cpv, ["SLOT"])[0])
-               e_pkg = self._slot_pkg_map[root].get(slot_atom)
-               if e_pkg:
-                       return e_pkg, e_pkg
-               # Since this cpv exists in the graph_db,
-               # we must have a cached Package instance.
-               cache_key = ("installed", root, cpv, "nomerge")
-               return (self._pkg_cache[cache_key], None)
+               pkg = matches[-1] # highest match
+               in_graph = self._slot_pkg_map[root].get(pkg.slot_atom)
+               return pkg, in_graph
 
        def _complete_graph(self):
                """