Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r12046 - main/branches/2.1.6/pym/_emerge
Date: Sun, 23 Nov 2008 00:34:03
Message-Id: E1L42vI-0001tm-Lb@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-11-23 00:33:59 +0000 (Sun, 23 Nov 2008)
3 New Revision: 12046
4
5 Modified:
6 main/branches/2.1.6/pym/_emerge/__init__.py
7 Log:
8 When displaying anscestors of an unstatisfied dependency (code from bug
9 #245358), avoid a potential infinite loop and memory leak triggered by
10 circular dependencies. Thanks to Peter Weller <welp@g.o> for reporting.
11 (trunk r12045)
12
13
14 Modified: main/branches/2.1.6/pym/_emerge/__init__.py
15 ===================================================================
16 --- main/branches/2.1.6/pym/_emerge/__init__.py 2008-11-23 00:30:55 UTC (rev 12045)
17 +++ main/branches/2.1.6/pym/_emerge/__init__.py 2008-11-23 00:33:59 UTC (rev 12046)
18 @@ -5388,13 +5388,18 @@
19 print "\nemerge: there are no ebuilds to satisfy "+green(xinfo)+"."
20
21 # Show parent nodes and the argument that pulled them in.
22 + traversed_nodes = set()
23 node = myparent
24 msg = []
25 while node is not None:
26 + traversed_nodes.add(node)
27 msg.append('(dependency required by "%s" [%s])' % \
28 (colorize('INFORM', str(node.cpv)), node.type_name))
29 parent = None
30 for parent in self.digraph.parent_nodes(node):
31 + if parent in traversed_nodes:
32 + parent = None
33 + continue
34 if isinstance(parent, DependencyArg):
35 msg.append('(dependency required by "%s" [argument])' % \
36 (colorize('INFORM', str(parent))))