Avoid unnecessary aux_get calls inside Scheduler._pkg() by getting the existing
authorZac Medico <zmedico@gentoo.org>
Thu, 30 Oct 2008 20:20:38 +0000 (20:20 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 30 Oct 2008 20:20:38 +0000 (20:20 -0000)
Package instance from the digraph.

svn path=/main/trunk/; revision=11752

pym/_emerge/__init__.py

index 5b220c4b27724812b9022821b8f2a9a2810c0f40..8e2df4d5804e4b73a32dc59d1069a3ed5e9fb15d 100644 (file)
@@ -10345,6 +10345,13 @@ class Scheduler(PollScheduler):
                if installed:
                        operation = "nomerge"
 
+               if self._digraph is not None:
+                       # Reuse existing instance when available.
+                       pkg = self._digraph.get(
+                               (type_name, root_config.root, cpv, operation))
+                       if pkg is not None:
+                               return pkg
+
                tree_type = depgraph.pkg_tree_map[type_name]
                db = root_config.trees[tree_type].dbapi
                db_keys = list(self.trees[root_config.root][
@@ -10357,10 +10364,6 @@ class Scheduler(PollScheduler):
                        settings.setcpv(pkg)
                        pkg.metadata["USE"] = settings["PORTAGE_USE"]
 
-               if self._digraph is not None:
-                       # Reuse existing instance when available.
-                       pkg = self._digraph.get(pkg, pkg)
-
                return pkg
 
 class MetadataRegen(PollScheduler):