summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-11-29 20:24:31 +0000
committerZac Medico <zmedico@gentoo.org>2008-11-29 20:24:31 +0000
commitf541057b7dde885d3aa2a4014721a37fa223a408 (patch)
treecbf12cd2aa76ade9297c7f3c5f50fb0a74867338
parent22251bfd49f7ded6c97c5dc38a68932905c71481 (diff)
downloadportage-f541057b7dde885d3aa2a4014721a37fa223a408.tar.gz
portage-f541057b7dde885d3aa2a4014721a37fa223a408.tar.bz2
portage-f541057b7dde885d3aa2a4014721a37fa223a408.zip
Add a sanity check inside depgraph._add_pkg() to ensure that the dependencies
of the same package are never processed more than once. (trunk r12122) svn path=/main/branches/2.1.6/; revision=12123
-rw-r--r--pym/_emerge/__init__.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 8c3a89d49..7efcae784 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -4536,6 +4536,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
@@ -4688,7 +4691,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):