Add a sanity check inside depgraph._add_pkg() to ensure that the dependencies
authorZac Medico <zmedico@gentoo.org>
Sat, 29 Nov 2008 20:22:33 +0000 (20:22 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 29 Nov 2008 20:22:33 +0000 (20:22 -0000)
of the same package are never processed more than once.

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

pym/_emerge/__init__.py

index e82269dd4a9b228c384582a55e5bdd2aea7110a2..ef5ba6a4eef9b6126d5a1c7d17a6be0800e5f7bf 100644 (file)
@@ -4552,6 +4552,9 @@ class depgraph(object):
                #IUSE-aware emerge -> USE DEP aware depgraph
                #"no downgrade" emerge
                """
+               # Ensure that the dependencies of the same package
+               # are never processed more than once.
+               previously_added = pkg in self.digraph
 
                # select the correct /var database that we'll be checking against
                vardbapi = self.trees[pkg.root]["vartree"].dbapi
@@ -4704,7 +4707,8 @@ class depgraph(object):
                if args:
                        depth = 0
                pkg.depth = depth
-               dep_stack.append(pkg)
+               if not previously_added:
+                       dep_stack.append(pkg)
                return 1
 
        def _add_pkg_deps(self, pkg, allow_unsatisfied=False):