diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-03-11 03:44:38 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-03-11 03:44:38 +0000 |
commit | 13d9d37a0f99e6cfea9a36d04497df22f249c6f3 (patch) | |
tree | 5355e9013da046251331299d6e3292b6f2c9f8f6 /pym | |
parent | 6d2361b623399dc11b809e17c9efc0db87cdc870 (diff) | |
download | portage-13d9d37a0f99e6cfea9a36d04497df22f249c6f3.tar.gz portage-13d9d37a0f99e6cfea9a36d04497df22f249c6f3.tar.bz2 portage-13d9d37a0f99e6cfea9a36d04497df22f249c6f3.zip |
Fix digraph.clone() to properly clone priority lists. (trunk r12587)
svn path=/main/branches/2.1.6/; revision=12868
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/__init__.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 20fb6ba2f..0f27e2b39 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 |