From: Zac Medico Date: Thu, 5 Feb 2009 23:02:36 +0000 (-0000) Subject: Fix digraph.clone() to properly clone priority lists. X-Git-Tag: v2.2_rc24~215 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ce13d46f56fe0ddd79ee58e14821c92b916c32c3;p=portage.git Fix digraph.clone() to properly clone priority lists. svn path=/main/trunk/; revision=12587 --- diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 85c970440..5ac305817 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -561,8 +561,14 @@ class digraph(object): def clone(self): clone = digraph() clone.nodes = {} - for k, v in self.nodes.iteritems(): - clone.nodes[k] = (v[0].copy(), v[1].copy(), v[2]) + for children, parents, node in self.nodes.itervalues(): + children_clone = {} + for child, priorities in children.iteritems(): + children_clone[child] = priorities[:] + parents_clone = {} + for parent, priorities in parents.iteritems(): + parents_clone[parent] = priorities[:] + clone.nodes[node] = (children_clone, parents_clone, node) clone.order = self.order[:] return clone